C#

C# Inheritance

Yazar - UĞUR

Inheritance(Miras), başka bir sınıfa dayalı yeni bir sınıf tanımlamamızı sağlar. Bu, uygulama geliştirirken işimizi kolaylaştırır.
Özellikleri devralınan sınıfa, Base(Temel) sınıf. Özelliklerini devralan sınıfa Derived(Türetilmiş) sınıf denir.
Örneğin, Animal temel(Base) sınıfı, Cat ve Dog sınıflarını türetmek için kullanılabilir.
Türetilmiş(Derived) sınıf, tüm özellikleri temel(Base) sınıftan devralır ve kendi ek özelliklerine sahiptir.

Animal sınıfının temel sınıfını tanımlayalım:

class Animal {
 public int Legs {get; set;}
 public int Age {get; set;}
}

Şimdi Dog sınıfını Animal sınıfından türetebiliriz:

class Dog : Animal {
 public Dog() {
 Legs = 4;
 }
 public void Bark() {
 Console.Write("Woof");
 }
}

Türetilmiş(Derived) sınıfın söz dizimine dikkat edin. Türetilmiş(Derived) sınıf adı ardından İki nokta üst üste (:) ve temel(Base) sınıf adını yazarız.
Animal sınıfının tüm public üyeleri, Dog sınıfının public üyeleridir. Bu yüzden Dog constructor(Kurucu Metod)  Animal sınıfının Legs üyesine erişebilir.
Şimdi Dog türündeki bir nesneyi örnekleyebiliriz ve kendi Bark metodunu çağırmanın yanı sıra devralınan üyelere erişebiliriz.

static void Main(string[] args) {
 Dog d = new Dog();
 Console.WriteLine(d.Legs);
 // Outputs 4

 d.Bark();
 //Outputs "Woof"
}

Temel(Base) sınıftan türetilmiş(Derived) bir çok sınıf oluşturulabilir. Örneğin, Cat sınıfı Animal sınıfından  Inheritance yöntemi ile oluşturulabilir.

Inheritance , türetilmiş sınıfta kodu yeniden yazmak zorunda kalmadan temel sınıfın kullanmasına olanak tanır. Ve türetilmiş sınıf, daha fazla üye ekleyerek özelleştirilebilir. Bu şekilde, türetilmiş sınıf temel sınıfın işlevselliğini genişletir.

Türetilmiş bir sınıf, metotları da dahil olmak üzere temel sınıfın tüm üyelerini devralır.
Örneğin:

class Person {
 public void Speak() {
 Console.WriteLine("Hi there");
 }
}
class Student : Person {
 int number;
}
static void Main(string[] args) {
 Student s = new Student();
 s.Speak();
 //Outputs "Hi there"
}

Bir Student nesnesi oluşturduk ve Temel sınıf Person‘da bildirilen Speak metodunu çağırdık.

C #, birden çok sınıftan devralınamayacağından çoklu inheritance özelliğini desteklemez. Yani türetilmiş sınıfı birden çok temel sınıfa dayandıramayız, türetilmiş sınıfın bir tek temel sınıfı olabilir.
Bununla birlikte, çoklu miras uygulamak için interfaces kullanabilirsiniz. Başka bir yazıda interfaces hakkında açıklama yazacağım.

Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.