Sobes.tech
Junior

Интерфейс дегеніміз не және ол абстрактілі классынан қалай ерекшеленеді?

sobes.tech AI

AI-дан жауап

Интерфейс — бұл келісімшарт, ол класс жүзеге асыруы керек әдістердің жиынтығын анықтайды. Ол бұл әдістердің жүзеге асуын қамтымайды және күй өрістерін (константалардан басқа) қамтымайды. Ол объектілердің мінез-құлқын анықтау және көп мұрагерлікті қамтамасыз ету үшін пайдаланылады.

Абстрактілі класс абстрактілі (жүзеге асырылмаған) және нақты (жүзеге асырылған) әдістерді қамтуы мүмкін. Ол күй өрістерін қамти алады және ұрпақтар үшін жалпы құрылымды және мінез-құлықты анықтау үшін пайдаланылады. Java-да абстрактілі кластардан көп мұрагерлік мүмкін емес.

Негізгі айырмашылықтар:

  • Әдістерді жүзеге асыру: Интерфейс жүзеге асырмайды, абстрактілі класс жүзеге асыра алады.
  • Күй өрістері: Интерфейс күй өрістерін қамтымайды (константалардан басқа), абстрактілі класс қамти алады.
  • Көп мұрагерлік: Класс бірнеше интерфейсті жүзеге асыра алады, бірақ тек бір абстрактілі класты мұраға алады.
  • Конструкторлар: Интерфейс конструкторларды қамтымайды, абстрактілі класс қамти алады.

Интерфейс мысалы:

interface Drawable {
    void draw(); // Абстрактілі әдіс
}

Абстрактілі класс мысалы:

abstract class Shape {
    protected int x, y; // Күй өрістері

    public Shape(int x, int y) {
        this.x = x;
        this.y = y;
    }

    abstract void display(); // Абстрактілі әдіс

    void moveTo(int newX, int newY) { // Нақты әдіс
        x = newX;
        y = newY;
    }
}