← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 28

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`.