Class inheritance
Pewarisan atribut dan method dari class induk.
Pahami konsepnya
Inheritance membuat class baru berdasarkan class lama: class Admin(Pengguna): — Admin mewarisi semua atribut dan method Pengguna, lalu menambahkan atau mengubah sesuai kebutuhan. Class induk disebut parent; class anak disebut child.
super() adalah jalan ke induk: super().__init__(...) memanggil constructor induk sebelum menambah inisialisasi sendiri. Method induk bisa dioverride — dideklarasikan ulang di anak dengan nama sama untuk perilaku berbeda.
Python mendukung multiple inheritance: class C(A, B) mewarisi dua induk. Method Resolution Order (MRO) menentukan urutan pencarian — biasanya left-to-right. Diamond problem (A→B,C→A) diselesaikan MRO C3 linearization.
Coba contoh kode
class Pengguna:
def __init__(self, nama, email):
self.nama = nama
self.email = email
def info(self):
return f"{self.nama} <{self.email}>"
class Admin(Pengguna):
def __init__(self, nama, email, level):
super().__init__(nama, email)
self.level = level
def info(self): # override
return f"[Admin L{self.level}] {super().info()}"
admin = Admin("Zaky", "ops@site.dev", 5)
print(admin.info()) # [Admin L5] Zaky <ops@site.dev>Admin mewarisi Pengguna: constructor memanggil super().__init__ untuk bagian induk lalu menambah level. Method info dioverride untuk menampilkan prefix [Admin] sambil memanfaatkan super().info() untuk bagian induk.
Latihan singkat
Uji: Pelanggan(Pengguna) dengan saldo — info() harus `[Pelanggan] Budi <b@mail> saldo=50000`.