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"); }
}