Middle
Abstrakt sinf va interfeys o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Abstract sinf — bu, amalga oshirilgan metodlar va amalga oshirilmagan (implementatsiya qilinmagan) metodlarni o'z ichiga olishi mumkin bo'lgan sinf. U meros olish uchun asos bo'lib xizmat qiladi va holat (maydonlar)ni o'z ichiga olishi mumkin.
Interfeys — bu, klassik tushunchada, amalga oshirilmagan metodlar to'plamini belgilovchi shartnoma. Interfeysni amalga oshiradigan sinf, uning barcha metodlarini amalga oshirishi shart.
Asosiy farqlar:
- Abstract sinf, amalga oshirilgan va holatni o'z ichiga olishi mumkin, interfeys — faqat metodlarning imzolari (ba'zi tillarda, interfeyslar default metodlarni ham o'z ichiga olishi mumkin).
- Bir sinf faqat bitta abstract sinfdan meros olishi mumkin, lekin bir nechta interfeyslarni amalga oshirishi mumkin.
- Abstract sinf qisman amalga oshirishni ta'minlaydi, interfeys — faqat shartnoma.
Java misoli:
abstract class Animal {
void eat() { System.out.println("Yemak"); }
abstract void sound();
}
interface Flyable {
void fly();
}
class Bird extends Animal implements Flyable {
void sound() { System.out.println("Chirp"); }
public void fly() { System.out.println("Uchish"); }
}