Override
Dalam penurunan kelas kita bisa melakukan penggantian metode orang-tua (parents) di kelas anak (children). Caranya mudah sekali cukup tulis ulang nama metodenya yang sama seperti ini contohnya:
class Ortu(object):
def metode_anu(self)
# lakukan anu
class Anak(Ortu):
def metode_anu(self)
# lakukan anu menurut Anak
Di contoh atas kita punya metode_anu
lagi di kelas Anak. Nantinya setiap objek dari Anak
akan merujuk ke metode_anu
di Anak
alih-alih di Ortu
. Tetapi, objek dari kelas Ortu
tetap akan menggunakan metode_anu
dari kelas Ortu
.
Lalu bagaimana jika kedua metode tersebut hanya berbeda sedikit saja? Kita gunakan super()
. Fungsi super()
berguna untuk memanggil metode dari kelas orang tua. Sehingga kita bisa melakukan hal yang unik di kelas anak dan setelah selesai panggil lagi metode orangtuanya. Contohnya seperti ini:
class Anak(Ortu):
def metode_anu(self)
# lakukan anu menurut Anak
# setelah selesai kita panggil
super(Anak, self).metode_anu()
Perhatikan baik-baik sintaks function super()
.
Di contoh samping lihat bagaimana kita menggantikan metode tambah_penumpang()
dari Kendaraan
.
Perhatikan baik-baik cara kita menolak menambah penumpang di saat penumpang
sudah ada 2. Tidak perlu lakukan apapun cukup jalankan saja.