Sobes.tech
Middle

Abstrakt sinif ilə interfeys arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Mürəkkəb sinif — həm həyata keçirilmiş metodları, həm də həyata keçirilməmiş (implementasiya olunmamış) metodları ehtiva edə bilən sinifdir. O, irs üçün baza kimi xidmət edir və vəziyyəti (sahələr) ehtiva edə bilər.

İnterfeys — klassik anlayışda, həyata keçirilməmiş metodların toplusunu müəyyən edən müqavilədir. İnterfeysi həyata keçirən sinif, onun bütün metodlarını həyata keçirməlidir.

Əsas fərqlər:

  • Mürəkkəb sinif, həyata keçirilmiş və vəziyyəti ehtiva edə bilər, interfeys — yalnız metodların imzalarını (bəzi dillərdə, interfeyslər default metodlar da ehtiva edə bilər).
  • Bir sinif yalnız bir mürəkkəb sinifdən irs ala bilər, lakin bir neçə interfeysi həyata keçirə bilər.
  • Mürəkkəb sinif qismən həyata keçirmə təmin edir, interfeys — yalnız müqavilə.

Java nümunəsi:

abstract class Animal {
    void eat() { System.out.println("Yemək"); }
    abstract void sound();
}

interface Flyable {
    void fly();
}

class Bird extends Animal implements Flyable {
    void sound() { System.out.println("Çığırıq"); }
    public void fly() { System.out.println("Uçur"); }
}