"Enter"a basıp içeriğe geçin

Inheritance Nedir ?

“Inheritance” (Miras alma), nesne tabanlı programlamada bir sınıfın başka bir sınıftan özellikleri ve davranışları miras alması anlamına gelir. Bu, kodun tekrar kullanılabilirliğini artıran ve kodu daha düzenli hale getiren bir programlama konseptidir.

İşte inheritance’ın nasıl kullanıldığını ve neler sağladığını anlamak için basit bir örnek:

class Animal {
    public $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function eat() {
        return $this->name . ' is eating.';
    }

    public function sleep() {
        return $this->name . ' is sleeping.';
    }
}

class Dog extends Animal {
    public function bark() {
        return $this->name . ' is barking.';
    }
}

class Cat extends Animal {
    public function meow() {
        return $this->name . ' is meowing.';
    }
}

Bu örnekte, Animal sınıfı genel hayvan özelliklerini tanımlar. Dog sınıfı, Animal sınıfından miras alır ve ayrıca kendi özel davranışlarını ekler (bark metodu). Aynı şekilde, Cat sınıfı da Animal sınıfından miras alır ve kendi özel davranışlarını ekler (meow metodu).

Bu sınıfları kullanmak için:

$dog = new Dog('Buddy');
echo $dog->eat();   // Buddy is eating.
echo $dog->bark();  // Buddy is barking.
echo $dog->sleep(); // Buddy is sleeping.

$cat = new Cat('Whiskers');
echo $cat->eat();   // Whiskers is eating.
echo $cat->meow();  // Whiskers is meowing.
echo $cat->sleep(); // Whiskers is sleeping.

Burada, Dog ve Cat sınıfları, Animal sınıfının özelliklerini ve davranışlarını miras alarak kendi özel davranışlarını eklemişlerdir. Bu sayede, genel bir sınıfın özelliklerini kullanarak özel davranışlar eklemek ve kodu tekrar kullanmak mümkün olmuştur.

Inheritance, özellikle bir sınıfın diğerine benzer bir sınıf oluşturulması durumunda ve kodun paylaşılması gerektiğinde kullanılır. Ancak, aşırı kullanımı ve yanlış kullanımı, karmaşık ve sıkı bağlı sınıflara yol açabilir, bu nedenle inheritance kullanımına dikkat etmek önemlidir. Yerine göre, composition gibi başka teknikler de düşünülmelidir.

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir