Anda di halaman 1dari 5

#Membuat Objek Induk(parent)

#Membuat Objek Turunan(Child)


#Membuat Konstruktor //('fungsi Orang.__init__() dieksekusi')
#Fungsi super().__init__() dan KelasInduk.__init__()
#Menambahkan Properti yang tidak ada pada induk

class Orang:

    def __init__ (self, nama, asal):


        self.nama = nama
        self.asal = asal
       
    def perkenalan(self):
        print(f'Perkenalkan nama saya {self.nama} berasal dari
{self.asal}')

Joko = Orang('Joko', 'Pontianak')


Joko.perkenalan()

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
       
   

Andi = Pelajar('Andi', 'Surabaya', "UNTAN")


Andi.perkenalan()
print(f'Saya bersekolah di {Andi.sekolah}')

Budi = Pekerja('Budi', 'Sulawesi', "Mall")


Budi.perkenalan()
print(f'Saya bekerja di {Budi.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 = hero('Knight',5000, 1000)


Knight.setTeam("Position   : Front Line")
Knight.set_profile("Trait      : Brave")

Knight.profile_hero1()
Knight.showTeam()
Knight.showProfile()

print('\n')
MULTILEVEL INHERITANCE (PERLU DIBUAT ULANG DGN CONTOH LEBIH JELAS)

class Person:

    def method1(self, a, b, c):


        self.var1 = a
        self.var2 = b
        self.var3 = c

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()

#gunakan help(objek) untuk memunculkan urutan atau aturan

#contoh kedua
class A:
  def showA(self):
      print("Show A")

class B:
    def showA(self):
      print("Show B")
 

class C(A, B):


  pass

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()

Anda mungkin juga menyukai