Sobes.tech
Junior — Middle

Nesne yönelimli programlamada soyut sınıf ile arayüz arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

PHP'de soyut sınıf ve arayüz aşağıdaki farklara sahiptir:

  • Soyut sınıf hem soyut yöntemler (geliştirme olmadan) hem de uygulamalı yöntemler ve özellikler içerebilir.

  • Arayüz yalnızca yöntem bildirimleri içerir (PHP 8'den itibaren varsayılan uygulamalar eklenebilir, ancak bu bir özelliktir), durum (özellikler) içermez.

  • Bir sınıf yalnızca bir soyut sınıftan kalıtım alabilir, ancak birden çok arayüzü uygulayabilir.

  • Soyut sınıf, temel bir uygulama ve genel sözleşmeyi belirlemek istediğinizde kullanılır, arayüz ise yalnızca sözleşmeyi tanımlamak istediğinizde kullanılır.

Örnek:

abstract class Animal {
    abstract public function makeSound();
    public function sleep() {
        echo "Uyuyor";
    }
}

interface CanFly {
    public function fly();
}

class Bird extends Animal implements CanFly {
    public function makeSound() {
        echo "Cıvıltı";
    }
    public function fly() {
        echo "Uçuyor";
    }
}

Bu şekilde, soyut sınıf kısmi bir uygulama belirler, arayüz ise sadece sözleşmeyi tanımlar.