Dart Programlama Dilinde Kalıtım (Inheritance)
Diğer nesne yönelimli programlama (OOP) dillerinde olduğu gibi Dart programlama dilinde de kalıtım benzer amaçlarla kullanılmaktadır.
Dart Programlama Dilinde Kalıtım
İngilizcesiyle inheritance olarak bilinen bu yapı, biyolojideki kalıtım olgusuyla benzerlikle taşımaktadır. Nasıl ki biyolojide kalıtım, genetik özelliklerin ebeveynlerden yavrulara aktarılması olarak tarif ediliyorsa, programlamada da benzer şekilde sınıf yapılarının (class) bir başka sınıf yapılarına sahip olduğu özellikleri (değişken, metot) aktarması olarak tarif edilebilir.
Ortak özellikleri aktaran sınıflar ebeveyn, ana, üst sınıf (parent class) olarak adlandırılırken, bu özellikleri alan sınıflara ise çocuk, alt sınıf (child class) olarak adlandırılmaktadır. Alt sınıflar, üst sınıflardan ortak olarak belirlenen özellikleri alabildiği gibi kendine has özelliklere de sahip olabilmektedir.
Yukarıdaki resimde Varlıklar sınıfı bizim üst sınıfımız olarak oluşturulmuştur. Cansızlar ve Canlılar sınıfları ise Varlıklar sınıfından türetilen 2 alt sınıftır. Ayrıca Canlılar sınıfından Hayvanlar, Bitkiler, Mikroskopik Canlılar ve Mantarlar olmak üzere 4 tane daha alt sınıf oluşturulmuştur. Bu vesileyle de belirtmek gerekir ki oluşturulan her alt sınıfın alt sınıfı dolaylı yoldan en üst sınıfın da alt sınıfı olmaktadır.
Yazılımda kalıtımın oldukça büyük avantajları bulunmaktadır. Mümkün olduğu kadar az kod yazılmasını sağladığı gibi, testi kolay, yazılan programların bakımını kolaylaştırır ve zamandan tasarruf sağlar. Zira ortak olan özellikler tek bir noktadan güncellenebilecektir.
Her ne kadar diğer programla dilleriyle benzerlik gösterse de kalıtım bazı yönleriyle Dart’ta farklıdır. Örneğin, Java’da bulunan çoklu kalıtım özelliği Dart programlama dilinde bulunmamaktadır. Yani bir alt sınıf ancak bir tane üst sınıfa sahip olabilir ve dolayısıyla birden fazla sınıftan türetme yapılamaz. Türetme yapabilmek için interface olarak adlandırılan nesnelerden faydalanılır. Bu sayede çoklu kalıtımın verdiği özellikler, yan etkileri olmaksızın kullanılabilmektedir.
Kalıtım Nasıl Kullanılır?
Dart programlama dilinde kalıtım oluşturmak için extend anahtar kelimesinden yararlanılır. Aşağıda örnek bir kalıtım örneği kodlanmıştır:
class Kus
{
void ucmak()
{
print("Kuşlar uçabilen canlılardır.");
}
}
// Papagan sınıfı Kus sınıfından miras alıyor
class Papagan extends Kus
{
//alt sınıfın fonksiyonu
void konusma()
{
print("Papağanlar insanlar gibi konuşabilir.");
}
}
void main()
{
// Alt sınıftan nesneler üretiliyor
Papagan p = Papagan();
p.konusma();
p.ucmak();
}
Çıktı:
Papağanlar insanlar gibi konuşabilir.
Kuşlar uçabilen canlılardır.
Kodu çalıştırmak için: DartPad