class Orang:
class Pelajar(Orang):
def __init__(self, nama, asal, sekolah):
super().__init__(nama, asal)
self.sekolah = sekolah
class Pekerja(Orang):
def __init__(self, nama, asal, tempat_kerja):
Orang.__init__(self, nama, asal)
self.tempat_kerja = tempat_kerja
print('\n')
MULTIPLE INHERITANCE
class team:
def setTeam(self,team):
self.team = team
def showTeam(self):
print(self.team)
class profile_hero:
def set_profile(self,profile):
self.profile = profile
def showProfile(self):
print(self.profile)
class hero(team,profile_hero):
def __init__(self, name, health, magic):
self.name = name
self.health = health
self.magic = magic
def profile_hero1(self):
print('\n')
print("Name :", self.name)
print("Health :", self.health)
print("Magic :", self.magic)
Knight.profile_hero1()
Knight.showTeam()
Knight.showProfile()
print('\n')
MULTILEVEL INHERITANCE (PERLU DIBUAT ULANG DGN CONTOH LEBIH JELAS)
class Person:
class Employee(Person):
pass
class Employee2(Employee):
pass
def main():
obj1 = Person()
obj2 = Employee()
obj3 = Employee2()
obj1.method1(1, 2, 3)
print(obj1.var1, obj1.var2, obj1.var3)
obj2.method1(3, 4, 5)
print(obj2.var1, obj2.var2, obj2.var3)
obj3.method1(0, 8, 9)
print(obj3.var1,obj3.var2,obj3.var3)
if __name__ == "__main__":
main()
#method resolution order
class A:
pass
class B:
def show(self):
print("Show B")
class C(A,B):
pass
objek = C()
objek.show()
#contoh kedua
class A:
def showA(self):
print("Show A")
class B:
def showA(self):
print("Show B")
print(C.__mro__)
print(C.mro())
diamond problem
class A:
def show(self):
print("Show A")
class B(A):
pass
class C(A):
def show(self):
print("Show C")
class D(B,C):
pass
objek = D()
objek.show()