Temel Python 7. Gün: Kalıtım

Kalıtım

Kabaca bir sınıftan başka bir sınıf oluşturma işlemidir. Tanımlanması şu şekildedir;

1
2
class ClassIsmi(AnaClassIsmi):
içerik

Kalıtım Örneği
Dün oluşturduğumuz oyuncu sınıfından bir yönetici sınıfı oluşturmak istediğimizi varsayalım. Kalıtım yoluyla şu şekilde gerçekleştirebiliriz;

1
2
3
4
5
6
7
class Yonetici(Oyuncu):
yoneticiSayisi = 0
# ek veriler eklenebilir.

def __init__(self):
Yonetici.yoneticiSayisi += 1
# ek fonksiyonlar eklenebilir.

Şimdi de dünkü örneğimizle bugünkü örneğimizi birleştirip daha işlevsel bir örnek elde edelim;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class Oyuncu:
oyuncuSayisi = 0
isim = ""
yas = 0

def __init__(self, isim, yas):
self.isim = isim
self.yas = yas
Oyuncu.oyuncuSayisi += 1

def oyuncuyuGoster(self):
print("İsim: ", self.isim, "\nYaş: ", self.yas, "\n")

oyuncu1 = Oyuncu("Ahmet", 18)
oyuncu2 = Oyuncu("Mehmet", 21)

oyuncu1.oyuncuyuGoster()
oyuncu2.oyuncuyuGoster()

print("Toplam Oyuncu Sayısı: %d" % Oyuncu.oyuncuSayisi, "\n")


class Yonetici(Oyuncu):
yoneticiSayisi = 0
# ek veriler eklenebilir.

def __init__(self):
Yonetici.yoneticiSayisi += 1
# ek fonksiyonlar eklenebilir.

yonetici1 = Yonetici()

# ana sınıfın verilerini alt sınıfımızda kullandık.
yonetici1.isim = "Osman"
yonetici1.yas = 40

# ana sınıfın fonksiyonunu alt sınıfımızda kullandık.
yonetici1.oyuncuyuGoster()

# toplam oyuncu sayısını etkilemedigimizi
# (yani ana sınıfın constructorunu cagirmadigimizi) gorelim.
print("Toplam Oyuncu Sayısı: %d" % Oyuncu.oyuncuSayisi)
print("Toplam Yönetici Sayısı: %d" % Yonetici.yoneticiSayisi)