Python - İleri Seviye Python

Miras alma (Inheritance)

Yayın tarihi :01-Ara-21
Bölüm kodlarını ve/veya veri setlerini indir.

Miras alma (Inheritance), başka bir sınıfın değişkenlerini ve methotlarını kullanabilme işlemine miras alma veya kalıtım denir. Daha önce işlemiş olduğumuz Sınıflar ve Nesneler konusunda bahsettiğimiz Insan sınıfına ek olarak oluşturulan Öğretmen ve Öğrenci sınıflarının Insan sınıfına ait özellikleri kullanabileceğinden bahsetmiştik. Oluşturduğumuz görseli tekrar incelersek; 

Miras alma işlemi class YeniSınıfAdı(miras alıncak sınıf) şeklinde yapılır.

Öğretmen ve Öğrenci sınıfları Insan sınıfından miras alacaktır. Bunları yapalım;

class Insan():
    okul="Ankara Ünv."
    
    def __init__(self,isim,dogumTarihi,emailAdresi):
        self.isim=isim
        self.dogumTarihi=dogumTarihi
        self.emailAdresi=emailAdresi
    
    def yasHesaplama(self):
        return 2021-self.dogumTarihi
    
    def ozetBilgi(self):
        return "Özet bilgiler, okul: {} isim: {} doğum tarihi:{} email adresi:{}".format(self.okul,self.isim,self.dogumTarihi,self.emailAdresi)
class Ogretmen(Insan): #Insan sınıfından miras aldı.
    def __init__(self,isim,dogumTarihi,emailAdresi,maas): #Öğretmen sınıfında kullanılacak değişkenler burada tanımlanır(Miras alacağı sınıfın değişkenleri de dahil)
        Insan.__init__(self,isim,dogumTarihi,emailAdresi)
        self.maas=maas
class Ogrenci(Insan):#Insan sınıfından miras aldı.
    def __init__(self,isim,dogumTarihi,emailAdresi,ogrenciNo,sinif):#Ogrenci sınıfında kullanılacak değişkenler burada tanımlanır(Miras alacağı sınıfın değişkenleri de dahil)
        Insan.__init__(self,isim,dogumTarihi,emailAdresi) 
        self.ogrenciNo=ogrenciNo
        self.sinif=sinif
#Örneklendirme işlemi yapıldı
ogretmen1=Ogretmen("Mustafa",1987,"m@gmail.com",5000)
ogrenci1=Ogrenci("Defne",2000,"d@gmail.com","60","2.Sınıf")
print(ogretmen1.dogumTarihi)
print(ogrenci1.dogumTarihi)

Çıktı:

1987
2000
#Öğretmen ve öğrenic sınıflarında yasHesaplama adında bir fonksiyon oluşturulmadı ama Insan sınıfından miras aldığı 
#için Insan sınıfına ait tüm methotları kullanabilmektedir.
print(ogretmen1.yasHesaplama()) 
print(ogrenci1.yasHesaplama())

Çıktı:

34
21
print(ogretmen1.ozetBilgi()) 
print(ogrenci1.ozetBilgi())

Çıktı:

Özet bilgiler, okul: Ankara Ünv. isim: Mustafa doğum tarihi:1987 email adresi:m@gmail.com
Özet bilgiler, okul: Ankara Ünv. isim: Defne doğum tarihi:2000 email adresi:d@gmail.com
print(ogretmen1.maas) 
print(ogrenci1.sinif)

Çıktı:

5000
2.Sınıf

Özet olarak; yukarıdaki örnek içersinde de bahsettiğimiz gibi bir sınıf diğer bir sınıftan miras alıyorsa o sınıfa ait tüm değişkenleri, methotları kullanabilmektedir. Karmaşık  projelerde miras olayını kullanmak büyük avantajlar sağlayacaktır.

Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.