Interfeys va abstrakt klasslar
Daraja: O'rta
Interfeys — shartnoma: nima qilinishi kerakligini aytadi, qanday qilinishini emas. Klass bir nechta interfeysni amalga oshira oladi, lekin faqat bitta klassdan meros oladi. Abstrakt klass umumiy holat + qisman realizatsiya berish kerak bo'lganda ishlatiladi. Java 8'dan interfeysda `default` va `static` metodlar bor.
Tushuntirish
Interfeys — shartnoma: nima qilinishi kerakligini aytadi, qanday qilinishini emas. Klass bir nechta interfeysni amalga oshira oladi, lekin faqat bitta klassdan meros oladi. Abstrakt klass umumiy holat + qisman realizatsiya berish kerak bo'lganda ishlatiladi. Java 8'dan interfeysda `default` va `static` metodlar bor.
Kod misoli
interface Tolov {
void tola(double summa);
default String valyuta() { return "UZS"; }
}
class Karta implements Tolov {
@Override public void tola(double summa) {
System.out.println(summa + " " + valyuta() + " karta orqali");
}
}
@FunctionalInterface
interface Tekshiruvchi {
boolean tekshir(String s);
}
Tekshiruvchi bosh = s -> s == null || s.isBlank();
Keng tarqalgan xatolar
- Interfeys metodlarini `public` qilishni unutish — ular avtomatik public, kamaytirish mumkin emas.
- Bir nechta interfeysda bir xil default metod bo'lsa, konfliktni qo'lda hal qilish kerak.
Mashqlar
- `Saralanuvchi` interfeysini yozib, ikki xil klassda turlicha amalga oshir.
- Comparable'ni implement qilib, obyektlar ro'yxatini sortla.
Teglar: interfeys, oop