Sobes.tech
Middle

Абстракттуу класс менен интерфейсинин айырмасы эмнеде?

sobes.tech AI

AIден жооп

Абстракттуу класс — бул, ишке ашырылган жана ишке ашырылбаган (реализациясы жок) методдорду камтыган класс. Ал мурас алуу үчүн негиз болуп кызмат кылат жана абалы (майдандар) болушу мүмкүн.

Интерфейс — бул классикалык түшүнүктө, ишке ашырылбаган методдордун топтомун аныктаган келишим. Интерфейсти ишке ашырган класс, анын бардык методдорун ишке ашырышы керек.

Негизги айырмачылыктар:

  • Абстракттуу класс, ишке ашырылган жана абалы бар, интерфейс — гана методдордун белгилери (кей тилдерде, интерфейстерде, алдын ала иштелип чыккан методдор болушу мүмкүн).
  • Бир класс гана бир абстракттуу класстан мурас алса болот, бирок бир нече интерфейстерди ишке ашыра алат.
  • Абстракттуу класс жарым-жартылай ишке ашыруу камсыздайт, интерфейс — гана келишим.

Java мисалы:

abstract class Animal {
    void eat() { System.out.println("Жейт"); }
    abstract void sound();
}

interface Flyable {
    void fly();
}

class Bird extends Animal implements Flyable {
    void sound() { System.out.println("Чирк"); }
    public void fly() { System.out.println("Учуп жатат"); }
}