C# Kalıtlama (Inheritance) nedir?
C # 'da miras, mevcut bir sınıftan yeni bir sınıf oluşturmamızı sağlar. Nesneye Yönelik Programlama ( OOP ) 'in önemli bir özelliğidir.
Yeni bir sınıfın oluşturulduğu sınıf, ( ana sınıfı veya üst sınıf ) temel sınıfı olarak bilinir. Ve yeni sınıf türetilmiş sınıf ( çocuk veya alt sınıf ) olarak adlandırılır
Türetilmiş sınıf, temel sınıfın alanlarını ve yöntemlerini devralır. Bu, C # 'daki kodun yeniden kullanılabilirliğine yardımcı olur.
C # 'da kalıtım nasıl yapılır ?
C # 'da kalıtımı gerçekleştirmek için :
sembolünü kullanırız. Örneğin,
class Animal {
// fields and methods
}
// Dog inherits from Animal
class Dog : Animal {
// fields and methods of Animal
// fields and methods of Dog
}
Burada türetilmiş Dog sınıfı Animal temel sınıfından miras alıyoruz. Dogsınıfı artık
Animalsınıfının alanlarına ve yöntemlerine erşiebilir.
Örnek: C # Kalıtım
using System;
namespace Inheritance {
// base class
class Animal {
public string name;
public void display() {
Console.WriteLine("I am an animal");
}
}
// derived class of Animal
class Dog : Animal {
public void getName() {
Console.WriteLine("My name is " + name);
}
}
class Program {
static void Main(string[] args) {
// object of derived class
Dog labrador = new Dog();
// access field and method of base class
labrador.name = "Rohu";
labrador.display();
// access method from own class
labrador.getName();
Console.ReadLine();
}
}
}
çıktı
Ben bir hayvanım Benim adım Rohu
Yukarıdaki örnekte, Animal üst sınıfından bir Dog alt sınıf türettik.
labrador.name = "Rohu";
labrador.getName();
Burada kullanıyoruz labrador( Köpek nesnesi ) name ve display ( ) Animalsınıf. Bu mümkündür çünkü türetilmiş sınıf, temel sınıfın tüm alanlarını ve yöntemlerini miras alır.
Ayrıca Dog sınıfının method içerisinden name alanına eriştik.
Kalıtım ilişkisi
C # 'da miras bir ilişkidir. Kalıtım sadece iki sınıf arasında bir ilişki varsa kullanırız.
Örneğin,
- Köpek bir Hayvan
- Elma bir Meyve
- Araba bir Araç
Köpeği Hayvan sınıfından türetebiliriz. Benzer şekilde, Elmayı Meyve sınıfından ve Arabayı Araç sınıfından türetebiliriz.
Köpeği, Hayvan sınıfından türetebilirizç Benzer şekilde, Elmayı Meyve sınıfından ve Arabayı, Araç sınıfından türetebiliriz.
C # Mirasta Korunan Üyeler
Bir alanı veya yöntemi şu şekilde beyan ettiğimizde protected
, yalnızca aynı sınıftan ve türetilmiş sınıflarından
erişilebilir.
Örnek: Mirasta Korunan Üyeler
using System;
namespace Inheritance {
// base class
class Animal {
protected void eat() {
Console.WriteLine("I can eat");
}
}
// derived class of Animal
class Dog : Animal {
static void Main(string[] args) {
Dog labrador = new Dog();
// access protected method from base class
labrador.eat();
Console.ReadLine();
}
}
}
çıktı
yiyebilirim
Yukarıdaki örnekte, Animal adlı bir sınıf oluşturduk. Sınıf korumalı bir ( ) eat yöntemi içerir
Animal sınıfından Dog sınıfını ürettik . İfadeye dikkat edin,
labrador.eat();
Korumalı metoda türetilmiş sınıflardan erişilebildiği için,( ) eat metoduna Dogsınıfınıdan erişebiliyoruz.
Kalıtım türleri
1. Tek Kalıtım
Tek bir kalıtımda, tek bir türetilmiş sınıf, tek bir temel sınıftan miras alır.
2. Çok Düzeyli Kalıtım
Çok düzeyli kalıtımda, türetilmiş bir sınıf bir tabandan miras alır ve
daha sonra aynı türetilmiş sınıf, başka bir sınıf için bir temel sınıf
görevi görür.
3. Hiyerarşik Kalıtım
Hiyerarşik kalıtımda, birden çok türetilmiş sınıf, tek bir temel sınıftan miras alır.
4. Çoklu Kalıtım
Birden fazla kalıtımda, tek bir türetilmiş sınıf, birden çok temel
sınıftan miras alır. C # çoklu kalıtımı desteklemez. Ancak, arayüzler aracılığıyla çoklu kalıtım elde
edebiliriz.
5. Hibrit Kalıtım
Hibrit kalıtım, iki veya daha fazla kalıtım türünün birleşimidir. Çok
düzeyli ve hiyerarşik kalıtımın birleşimi, Hibrit kalıtımın bir
örneğidir.