-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclass_inheritance_super.py
More file actions
50 lines (39 loc) · 1.72 KB
/
class_inheritance_super.py
File metadata and controls
50 lines (39 loc) · 1.72 KB
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
44
45
46
47
48
49
50
class Çalışan():
def __init__(self, isim, soyisim, maaş):
print("Çalışan sınıfı init fonksiyonu")
self.isim = isim
self.soyisim = soyisim
self.maaş = maaş
def bilgileri_göster(self):
print("Çalışan sınıfı bilgileri")
print("\tİsim : {},\n\tSoyisim : {},\n\tMaaş : {}"
.format(self.isim, self.soyisim, self.maaş))
def işten_çıkar(self):
print('Çalışanlar işten çıkaramassın')
class Yönetici(Çalışan):
# def __init__(self, isim, soyisim, maaş, çalışan_adedi):
# print("Çalışan sınıfı init fonksiyonu")
# self.isim = isim
# self.soyisim = soyisim
# self.maaş = maaş
# self.çalışan_adedi = çalışan_adedi
'''
Yöneticiler için ekstra çalışan_adedi özelliği kullanılmıştır.
Yukarıdaki gibi __init__ fonksiyonunu override ederek tanımlanırsa,
Çalışan ve Personel sınıfında isim, soyisim, maaş özellikleri tekrar
eder. Bunun yerine super fonksiyonu kullanılır.
'''
def __init__(self, isim, soyisim, maaş, çalışan_adedi):
print('Yönetici init fonksiyonu')
super().__init__(isim, soyisim, maaş)
self.çalışan_adedi = çalışan_adedi
# Override edilip, diğer fonksiyona yeni şeyler eklendi
def bilgileri_göster(self):
super().bilgileri_göster()
print('\tÇalışan adedi : {}'.format(self.çalışan_adedi))
# Override edildi. (Kalıtım alınan fonksiyon iptal edildi.)
def işten_çıkar(self):
print('kimin çıkarılmasını istersin')
yönetici = Yönetici('emre', 'çetin', 2000, 10)
yönetici.bilgileri_göster()
print(yönetici)