Python Çoklu Kalıtım Multi Inheritance
Çoklu kalıtım(Multi inheritance) Python’da kalıtım konusu ile ilgili son yazımız olacaktır.Bir önceki yazımızda çok seviyeli kalıtım a değinmiştik.Şimdi Python’da çoklu kalıtımı inceleyeceğiz.Çoklu kalıtım bir class ın birden fazla classtan kalıtım alması demektir.Yani bir çocuğun anne ve babasından kalıtım alması gibi.Bir önceki yazıda kulandığımız Canlı,insan ve Kadın sınıflarını bu konu içinde kullanalım.Python Çoklu Kalıtım Multi Inheritance
Python’da çoklu kalıtım işlemi normal kalıtım ile aynı şekilde gerçekleşir.Kalıtım alınacak sınıflar alt sınıfa parametre olarak yazılır.Burda dikkat edilmesi gereken bir nokta var ki o da miras alınan classlarda aynı isimli metotların veya özelliklerin yer almasıdır.Python çoklu kalıtımda bir özelliği veya metodu temel sınıflarda arar.Eğer temel sınıfların bir tanesinde var ise bulduğu temel classın özelliklerini kullanır.Her ikisinde var ise devreye method resolution order adında bir hiyerarşi girer.Bu hiyerarşi kısaca şöyle sonuca gider.İlk parametre olarak verilen class da var ise onu kulan.
Şimdi dediklerimizi koda dökelim.
class Canlı: def __init__(self): print("Canlılar Sınıfı") def fonksiyon1(self): print("Canlılar Sınıfı Fonksiyon1") def fonksiyon2(self): pass class Insan(): def __init__(self): print("İnsan bir Canlıdır") def fonksiyon1(self): print("İnsan sınııf fonksiyon 1") class Kadın(Canlı,Insan): def __init__(self): super().__init__() print("Kadınlar insanlara ait özelliklere sahiptir")
Hem Canlı sınıfında hemde insan sınıfında aynı isimde iki adet fonksiyon vardır.(__init__ ve fonksiyon1)Şimdi Kadın sınıfını çağırdığımızda hangi sınıfa ait yapıcı fonksiyon çalışacak bir bakalım.
kadin=Kadın()
Output:
Canlılar Sınıfı
Kadınlar insanlara ait özelliklere sahiptir
Kadın sınıfının kalıtım aldığı sınıflar içerisinden canlı sınıfı çalıştı.Şimdi de fonksiyon1 i çağıralım.
kadin.fonksiyon1()
Output:
Canlılar Sınıfı
Kadınlar insanlara ait özelliklere sahiptir
Canlılar Sınıfı Fonksiyon1
Çoklu kalıtımın çalışma mantığı bu şekildedir.Eşitlik durumunda her zaman ilk verilen sınıfa ait özellikler çalışır.
Bir sonraki yazımızda görüşmek dileğiyle.Python Çoklu Kalıtım Multi Inheritance