Materi
Kelas turunan ditulis dengan nama induknya di dalam kurung: class TiketVIP(Tiket):. Turunan mewarisi semua method induknya. Saat sebuah atribut atau method dicari dan tidak ada di kelas turunan, Python melanjutkan pencarian ke kelas induk. Turunan boleh menimpa method induk dengan menulis method bernama sama.
Fungsi super() memberi akses ke versi induk dari method yang ditimpa. Di __init__ turunan, super().__init__(...) menjalankan pengisian atribut milik induk, lalu turunan menambahkan atributnya sendiri. Di method lain, super().harga() + 150000 memperluas hasil induk alih-alih menyalin rumusnya, sehingga perubahan rumus di induk ikut terbawa.
class Tiket:
def __init__(self, acara, harga_dasar):
self.acara = acara
self.harga_dasar = harga_dasar
def harga(self):
return self.harga_dasar
class TiketVIP(Tiket):
def __init__(self, acara, harga_dasar, kursi):
super().__init__(acara, harga_dasar)
self.kursi = kursi
def harga(self):
return super().harga() + 150000
v = TiketVIP("Konser Makassar", 350000, "A7")
print(v.harga()) # 500000
print(isinstance(v, Tiket)) # True
print(isinstance(Tiket("Pameran", 50000), TiketVIP)) # Falseisinstance(obj, Kelas) bernilai True bila obj dibuat dari Kelas atau dari turunannya; issubclass memeriksa hubungan dua kelas. Kapan dipakai: ketika satu jenis benda adalah versi khusus dari jenis lain dan memakai sebagian besar perilaku yang sama, seperti tiket VIP terhadap tiket biasa. Bila kedua kelas hanya mirip namanya tetapi perilakunya berbeda, pewarisan justru membuat method induk yang tidak cocok ikut terbawa.