56. PYTHON (OOP) – Inheritance

Belajar Bahasa Python Lengkap

Inheritance atau pewarisan menyediakan cara untuk berbagi fungsionalitas di antara class. Misalkan terdapat class Kucing dan Sapi. Class-class tersebut mungkin berbeda satu sama lain, dimana class Kucing memiliki method makan dan class Sapi tidak. Tetapi kedua class tersebut memiliki persamaan karena sama-sama memiliki atribut nama dan warna. Persamaan tersebut dapat dibuat dengan membuat class-class tersebut mewarisi/inherit dari superclass Hewan.

class Hewan:

     def __init__(self, nama, warna):
         self.nama = nama     
         self.warna = warna

class Kucing(Hewan):
     def makan(self):
         print("Kucing sedang makan")

class Sapi(Hewan):
     def melahirkan(self):
         print("Sapi sedang melahirkan")

binatang = Kucing("catty", "putih")
 
print(binatang.warna)
binatang.makan()
=====> 
 putih
 Kucing sedang makan 
=====>

Sebuah class yang inherit dari class lain disebut dengan subclass. Dan class yang menjadi induk atau meng-inherit ke kelas lain disebut dengan superclass. Jika sebuah class inherit dari class lain dengan nama atribut dan method yang sama, maka atribut dan method tersebut meng-override / menimpanya.

class Hewan:
     def __init__(self, nama, warna):     
          self.nama = nama     
          self.warna = warna 

     def makan(self):     
          print("Sedang makan")

class Kucing(Hewan):
     def makan(self):
          print("Sedang makan-makan")

binatang = Kucing("catty", "putih")

print(binatang.warna)
binatang.makan()
=====>
 putih
 Sedang makan-makan 
=====>

Pada contoh di atas, Hewan adalah superclass dan Kucing adalah subclass.

Inheritance dapat juga tidak secara langsung. Misalkan class A mewarisi class B, dan class B mewarisi class C.

class A:
     def method_a(self):
         print("Fungsi A")

class B(A):
     def method_b(self):
         print("Fungsi B")

class C(B):
     def method_c(self):
         print("Fungsi C")

objek = C()

objek.method_a()
objek.method_b()
objek.method_c()
=====>
 Fungsi A
 Fungsi B
 Fungsi C 
=====>

Fungsi super adalah fungsi pewarisan yang sangat berguna. Fungsi super dapat digunakan untuk menemukan method yang berada pada superclass.

class A:
     def metode(self):
         print("Fungsi A")

class B(A):
     def metode(self):
         print("Fungsi B")
         super().metode()

B().metode()
=====>
 Fungsi B
 Fungsi A 
=====>

B().metode() memanggil fungsi metode pada superclass.


LANJUTKAN BACA MATERI LENGKAP


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.