Sobes.tech
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