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.