Press "Enter" to skip to content

Çok Seviyeli Kalıtım Multi Level Inheritance

Yaşar SAFALI 0

Çok Seviyeli Kalıtım Multi Level Inheritance

Python yazı serimizin OOP bölümünde yer alan yazımızda kalıtımdan bahsetmiştik.Python Kalıtım yazımızı okumadıysanız bu adresten okuyabilirsiniz.Kalıtımı anlatrken bir sınıfın başka bir sınıftan özellikleri ve fonksiyonları miras alması demiştik.Bir miras alan alt sınıf bir de miras alınan temel sınıf mevcuttu.Yazımızda örnek verirken bir çocuğun anne veya babadan miras alması gibi demiştik.Çok seviyeli kalıtım ise anne veya babanında dededen miras alması gibi düşünülebilir.Çok Seviyeli Kalıtım Multi Level Inheritance

Bir örnek daha verecek olursak ,Kadın bir insandır.İnsan da bir canlıdır.

Şimdi söylediklerimizi kodlamaya dökelim.

class Canlı:

    def __init__(self):
        print("Canlılar Sınıfı")
    def fonksiyon1(self):
        pass
    def fonksiyon2(self):
        pass

class Insan(Canlı):
    def __init__(self):
        super().__init__()
        print("İnsan bir Canlıdır")
    def fonksiyon3(self):
        pass

class Kadın(Insan):
    def __init__(self):
        super().__init__()
        print("Kadınlar insanlara ait özelliklere sahiptir")

Tanımlanan en temel sınıf canlıdır.İnsan sınıfı canlıdan,kadın sınıfı ise insandan kalıtım almıştır.Bu kalıtım sayesinde insan sınıfı canlılar sınıfının fonksiyonlarını,kadın sınıfı ise insan sınıfının bütün fonksiyonlarını miras almıştır.

Şimdi  her sınıfın sahip olduğu fonksiyonları listeleyelim.

liste=dir(Canlı)
for i in liste:
    if not i.startswith("_"):
        print(i)

Output:

fonksiyon1
fonksiyon2

Canlı sınıfında tanımlanan iki fonksiyonda mevcut.

liste=dir(Insan)
for i in liste:
    if not i.startswith("_"):
        print(i)

Output:

fonksiyon1
fonksiyon2
fonksiyon3

İnsan sınıfı Canlı sınıfından kalıtım aldığı için Canlı sınıfının iki fonksiyonu artık insan sınıfınında fonksiyonu olmuştur.

liste=dir(Kadın)

for i in liste:
    if not i.startswith("_"):
        print(i)

Output:

fonksiyon1
fonksiyon2
fonksiyon3

Dikkat edilirse hiç bir fonksiyonu olmayan Kadın sınıfı insan sınıfından miras alarak 3 fonksiyona sahip olmuştur.Kadın Sınıfı insan sınıfı sayesinde canlı sınıfından da miras almış oldu.Bu yazımızda çok seviyeli kalıtımın temel çalışma mantığını anlatmaya çalıştık.Unutlmaması gereken husus kalıtım için geçerli olan bütün kurallar aynen geçerlidir.

Şimdi Kadın sınıfından bir nesne üretelim ve kodlarımızın çıktısına bakalım.

class Canlı:

    def __init__(self):
        print("Canlılar Sınıfı")
    def fonksiyon1(self):
        pass
    def fonksiyon2(self):
        pass

class Insan(Canlı):
    def __init__(self):
        super().__init__()
        print("İnsan bir Canlıdır")
    def fonksiyon3(self):
        pass

class Kadın(Insan):
    def __init__(self):
        super().__init__()
        print("Kadınlar insanlara ait özelliklere sahiptir")


kadın=Kadın()

Output:

Canlılar Sınıfı
İnsan bir Canlıdır
Kadınlar insanlara ait özelliklere sahiptir

Görüldüğü gibi kadın sınıfı hiyerarşik olarak üst sınıflardan kalıtım almıştır.

Çok seviyeli Kalıtım hakkında anlatacaklarımız bu kadar bir sonraki yazımızda görüşmek dileğiyle.

 

Bir cevap yazın

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