Middle
Arayüz ne zaman kullanılmalı, soyut sınıf ne zaman?
sobes.tech yapay zeka
AI'dan gelen yanıt
Alt sınıf kullanarak temel işlevsellik ve genel durumu oluşturuyoruz, bunları alt sınıflar miras alabilir. Bu, ortak yöntemler uygulamasıyla ve üzerine yazılması gereken yöntemlerle ilgilidir. Soyut sınıf alanlar ve yapıcılar içerebilir.
// Soyut sınıf
abstract class Animal {
String name;
public Animal(String name) {
this.name = name;
}
abstract void makeSound(); // Soyut yöntem
void eat() { // Uygulaması olan yöntem
System.out.println(name + " yemek yiyor.");
}
}
Arayüz kullanarak, sınıfların uygulaması gereken yöntemleri tanımlayan bir sözleşme belirliyoruz. Çoklu davranışa ulaşmak için uygundur (çoklu kalıtım). Arayüz, durum (örneğin alanlar) ve yapıcılar içeremez (Java 8 öncesi).
// Arayüz
interface Flyable {
void fly(); // Soyut yöntem
}
Farklılıkların özet tablosu:
| Özellik | Soyut sınıf | Arayüz |
|---|---|---|
| Üye türleri | Alanlar, soyut ve somut yöntemler, yapıcılar | Sabitler, soyut yöntemler (varsayılan), statik ve default yöntemler (Java 8 ve sonrası) |
| Yöntem uygulaması | Uygulaması olan yöntemler içerebilir | Java 8 öncesi sadece soyut yöntemler, Java 8 ve sonrası - static ve default |
| Durum | Durum (alanlar) içerebilir | Durum (örneğin alanlar) içeremez |
| Kalıtım | Tekli kalıtım | Çoklu uygulama |
| Kullanım | "bir" (is-a) - temel tür | "sahip olma" (has-a) - davranış sözleşmesi |