C#'ta Miras Nasıl Kullanılır?

C Ta Miras Nasil Kullanilir



Nesne yönelimli bir programlama dilinde kod yazarken, mevcut kodu yeni bir sınıfta yeniden kullanmamız veya mevcut bir sınıfa ek işlevler eklememiz gereken durumlarla karşılaşabiliriz. Bu gibi durumlarda, miras işe yarar. Nesne yönelimli programlamada kalıtım, sınıfların başka bir sınıfın özelliklerini ve davranışını miras almasına izin verir. Bu makale, C#'ta kalıtımın kullanımını ve farklı türlerini ele almaktadır.

İçindekiler

C#'ta Kalıtım Nedir?

C#'ta Kalıtım Nasıl Çalışır?







C#'ta Kalıtım Türleri



Çözüm



C#'ta Kalıtım Nedir?

Miras kullanan C#'ta, bir sınıf başka bir sınıfın özelliklerini ve yöntemlerini alabilir veya devralabilir. Başka bir deyişle, temel sınıf veya süper sınıf olarak bilinen mevcut bir sınıfa dayalı olarak yeni bir sınıfın oluşturulmasına izin verir. Bir temel sınıfın özelliklerini aldıktan sonra oluşan sınıfa denir. türetilmiş bir sınıf veya alt sınıf.





C# dilindeki bu türetilmiş sınıf, yalnızca temel sınıfın özelliklerini almakla kalmaz, aynı zamanda kendi benzersiz özelliklerini de ekleyebilir.

C#'ta Kalıtım Nasıl Çalışır?

C#'ta kalıtım iki nokta üst üste kullanılarak elde edilir (:) sembol. Temel sınıf adı, iki noktadan sonra tanımlanır ve türetilmiş sınıf tarafından belirtilir.



Aşağıda, temel sınıftan özellikler alan türetilmiş bir sınıf oluşturmaya yönelik sözdizimi verilmiştir:

sınıf DerivedClass : Temel Sınıf

{

// türetilmiş sınıf üyeleri

}

İşte bu kodda, Türetilmiş sınıf türetilmiş sınıfın adıdır ve Temel Sınıf temel sınıfın adıdır. bu : sembolü, DerivedClass'ın BaseClass'tan devraldığını gösterir. DerivedClass üyeleri, özel olmadıkları sürece BaseClass üyelerine erişebilirler.

C#'ta Kalıtım Türleri

C# dört tür kalıtımı destekler: tek, çok düzeyli, hiyerarşik ve çoklu kalıtım. Her bir türe bakalım.

Tek Kalıtım

Tek kalıtım, türetilmiş bir sınıfın yalnızca tek bir temel sınıfın özelliklerini aldığı veya miras aldığı en yaygın kalıtım türüdür.

Örneğin, verilen kod, sınıf hiyerarşisini açıklar ve kalıtım kavramlarını gösterir.

Sistemi kullanarak ;

Sistemi kullanarak ;
sınıf Araba
{
halk geçersiz Başlangıç ( )
{
Konsol. Yazı çizgisi ( 'Araba çalıştı' ) ;
}
}
sınıf Tesla : Araba
{
halk geçersiz Hızlanmak ( )
{
Konsol. Yazı çizgisi ( 'Tesla hızlanıyor' ) ;
}
}
sınıf Programı
{
statik geçersiz Ana ( sicim [ ] argümanlar )
{
Tesla myTesla = yeni Tesla ( ) ;
benimTesla'm Başlangıç ( ) ; // Çıktı: Araba başladı
benimTesla'm Hızlanmak ( ) ; // Çıktı: Tesla hızlanıyor
}
}

Yukarıdaki kodda, Araba sınıfı temel sınıftır ve adında bir yöntemi vardır. Başlangıç() , bu sadece mesajı yazdırır Araba başladı konsola.

bu Tesla sınıfı Car sınıfından türetilmiştir ve Car sınıfının tüm özelliklerini alır. Tesla sınıfı, adı verilen bir yöntem ekler. Hızlanmak() mesajı yazdıran Tesla hızlanıyor konsola.

bu Ana() işlevi, Tesla sınıfının bir örneğini tanımlar. benimTesla'm ve Start() ve Accelerate() yöntemlerini çağırır.

Çok Düzeyli Kalıtım

Çok düzeyli kalıtım, türetilmiş bir sınıfın başka bir türetilmiş sınıftan miras aldığı ve bunun da bir temel sınıftan miras aldığı yerdir.

Örneğin, aşağıdaki C# kodu, bir sınıf hiyerarşisinde kalıtımı ve yöntemi geçersiz kılmayı gösterir.

Sistemi kullanarak ;
sınıf Hayvan
{
halk geçersiz Yemek yemek ( )
{
Konsol. Yazı çizgisi ( 'Hayvan yemek' ) ;
}
}
sınıf Memeli : Hayvan
{
halk geçersiz Koşmak ( )
{
Konsol. Yazı çizgisi ( 'Memeli koşusu' ) ;
}
}
sınıf Köpek : Memeli
{
halk geçersiz Havlamak ( )
{
Konsol. Yazı çizgisi ( 'Köpek havlaması' ) ;
}
}
sınıf Programı
{
statik geçersiz Ana ( sicim [ ] argümanlar )
{
köpek benimköpeğim = yeni köpek ( ) ;
benim köpeğim. Yemek yemek ( ) ; // Çıktı: Hayvan yeme
benim köpeğim. Koşmak ( ) ; // Çıktı: Çalışan memeli
benim köpeğim. Havlamak ( ) ; // Çıktı: Köpek havlaması
}
}

Burada Köpek miras alan türetilmiş bir sınıftır Memeli , bu da miras alır Hayvan . Köpek sınıfı, Mammal ve Animal'ın tüm özelliklerine, yöntemlerine ve davranışlarına erişebilir ve ayrıca kendi benzersiz yöntemini tanımlayabilir. Havlamak() .

bu Hayvan sınıfı temel sınıftır ve adında bir yöntemi vardır. Yemek yemek() , bu sadece konsola Hayvan yiyor mesajını yazdırır.

bu memeli sınıfı Animal sınıfından türetilir ve adında bir yöntem ekler. Koşmak() , konsola çalışan Mammal mesajını yazdırır.

bu Köpek sınıfı Mammal sınıfından türetilmiştir ve adında bir yöntem ekler. Havlamak() , konsola Köpek havlıyor mesajını yazdırır.

Main() yöntemi, Dog sınıfının bir örneğini oluşturur. benim köpeğim ve Eat(), Run() ve Bark() yöntemlerini çağırır.

Eat() ve Run() yöntemlerinin Dog sınıfında tanımlanmadığını, ancak üst sınıflarından miras alındığını unutmayın. Hayvan Ve Memeli , sırasıyla. bu Havlamak() method sadece Dog sınıfında tanımlanır.

  Metin
Açıklama otomatik olarak oluşturuldu

Hiyerarşik Kalıtım

Hiyerarşik kalıtımda, farklı sayıda türetilmiş sınıf yalnızca bir temel sınıftan miras alınır. Örneğin:

Sistemi kullanarak ;
sınıf Şekil
{
halk geçersiz Çizmek ( )
{
Konsol. Yazı çizgisi ( 'Çizim şekli' ) ;
}
}
sınıf Çember : Şekil
{
halk geçersiz Doldurmak ( )
{
Konsol. Yazı çizgisi ( 'Doldurma çemberi' ) ;
}
}
sınıf Meydanı : Şekil
{
halk geçersiz Renk ( )
{
Konsol. Yazı çizgisi ( 'Boyama kare' ) ;
}
}
sınıf Programı
{
statik geçersiz Ana ( sicim [ ] argümanlar )
{
Çemberimi daire içine al = yeni Çevre ( ) ;
myCircle. Çizmek ( ) ; // Çıktı: Çizim şekli
myCircle. Doldurmak ( ) ; // Çıktı: Doldurma çemberi

kare benimKare = yeni Meydan ( ) ;
mySquare. Çizmek ( ) ; // Çıktı: Çizim şekli
mySquare. Renk ( ) ; // Çıktı: Boyama karesi
}
}

Yukarıdaki kodda her ikisi de Daire Ve Kare miras alan türetilmiş sınıflardır Şekil . Shape'de tanımlanan Draw() yöntemine erişimleri vardır ve ayrıca kendi benzersiz Fill() ve Color() yöntemlerini tanımlayabilirler.

Burada Circle sınıfından bir nesne yarattık. çevrem ve bir nesne Kare adlı sınıf karem . sonra biz diyoruz Çizmek() Her iki nesnede de Shape sınıfından miras alınan yöntem.

Sonra, biz diyoruz Doldurmak() Circle sınıfına özgü myCircle yöntemi ve Renk() mySquare'de square sınıfına özgü bir yöntem.

Çıktı konsola aşağıdaki gibi yazdırılacaktır:

  Metin
Açıklama, orta düzeyde güvenle otomatik olarak oluşturuldu

Çoklu Kalıtım

Birden çok kalıtım, türetilmiş bir sınıfın birden çok temel sınıftan miras aldığı yerdir. Ancak, C# çoklu kalıtımı desteklemez. Benzer işlevsellik elde etmek için C#, arayüzler .

Çözüm

C#'ta kalıtım, sınıfların temel sınıflardan davranış ve işlevsellik devralmasına izin verir. Kalıtımı kullanarak kodu yeniden kullanabilir ve program içinde hiyerarşik bir akış oluşturabiliriz. Farklı kalıtım türlerini anlayarak, bakımı ve genişletilmesi daha kolay olan daha verimli ve düzenli kodlar yazılabilir.