Press "Enter" to skip to content

Python Çoklu Kalıtım Multi Inheritance

Yaşar SAFALI 0

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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir