Junior — Middle
Interfeyslar va abstrakt sinflarda standart metodlarning qo'llanilishi qanday va ular qanday farq qiladi?
sobes.tech AI
AIdan javob
Default metodlar (default methods) Java interfeyslarida, mavjud implementatsiyalarni buzmasdan yangi metodlar qo'shishga imkon beradigan, amalga oshirilgan metodlar. Ular Java 8 da joriy etilgan.
Interfeyslar ichida default metodlarni qo'llash:
- Ular interfeyslarni kengaytirishga imkon beradi, ularni amalga oshiradigan sinflarning kodini buzmay.
- Asosiy amalga oshirishni taqdim etadi, uni ustun qilish mumkin.
Abstrakt sinflar ham abstrakt metodlar (amalga oshirilmagan) ham amalga oshirilgan metodlar bo'lishi mumkin. Ular umumiy mantiqqa ega bazaviy sinf yaratish uchun xizmat qiladi.
Asosiy farqlar:
- Default metodlarga ega interfeysda holat (maydonlar) bo'lishi mumkin emas, faqat konstantalar.
- Abstrakt sinf maydonlar va konstruktorlarni o'z ichiga olishi mumkin.
- Bir sinf bir nechta interfeyslarni amalga oshirishi mumkin, lekin faqat bitta abstrakt sinfdan meros oladi.
Interfeysda default metod misoli:
public interface Logger {
void log(String message);
default void logError(String error) {
log("XATO: " + error);
}
}
Bu yerda, logError amalga oshirilgan, default metod bo'lib, uni amalga oshiradigan sinflarda ishlatish yoki ustun qilish mumkin.