Inheritance
LogTekPem
Introduction
• Inheritance memungkinkan kita untuk mendefinisikan
kelas yang mewarisi semua metode dan properti dari
kelas lain.
• Parent Class/Kelas Induk: adalah kelas yang
mewariskan ke kelas lainnya, juga disebut kelas dasar.
• Child Class/Sub-class: adalah kelas yang diturunkan
dari kelas lain, disebut juga kelas turunan.
Create a Parent Class
• Setiap kelas bisa menjadi kelas induk/Parent Class, untuk sintaksnya sama dengan
membuat kelas lain:
• Contoh: Buat kelas bernama Person, dengan properti nama depan dan nama belakang,
dan sebuah
class metode cetak nama:
Person:
def __init__(self, fname, lname):
[Link] = fname
[Link] = lname
def printname(self):
print([Link], [Link])
#Use the Person class to create an object, and then execute the printname
method:
x = Person("John", "Doe")
[Link]()
Create a Child Class
• Untuk membuat kelas yang mewarisi fungsionalitas dari
kelas lain, kirim kelas induk sebagai parameter saat
membuat kelas anak:
• Contoh membuat kelas anak: Buat kelas bernama
Student, yang akan mewarisi properti dan metode dari
kelas Person:
• class Student(Person):
pass
Note: Use the pass keyword when you do not want to add any other properties or methods to the class.
Create a Child Class (contd)
• Sekarang kelas Student memiliki properti dan metode
yang sama dengan kelas Person.
• Gunakan kelas Student untuk membuat objek, dan
kemudian jalankan metode printname:
• x = Student(“Hani", “Holimah")
[Link]()
Add the __init__() Function
• Sejauh ini kita telah membuat kelas anak yang mewarisi
properti dan metode dari induknya.
• Kami ingin menambahkan fungsi __init __ () ke kelas
anak (bukan keyword pass).
• Catatan: Fungsi __init __ () dipanggil secara otomatis
setiap kali kelas digunakan untuk membuat objek baru.
Add the __init__() Function (example)
• Untuk mempertahankan warisan fungsi __init __
() dari induk, tambahkan panggilan ke fungsi
__init __ () milik induk:
• class Student(Person):
def __init__(self, fname, lname):
#add properties etc.
Use the super() Function
• Python juga memiliki fungsi super () yang akan
membuat kelas anak mewarisi semua metode dan
properti dari induknya:
• Contoh:
• class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)
Add Properties
• Add a property called graduationyear to the Student
class:
• class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)
[Link] = 2019
Add Properties (All Code)
• class Person:
• def __init__(self, fname, lname):
• [Link] = fname
• [Link] = lname
• def printname(self):
• print([Link], [Link])
• class Student(Person):
• def __init__(self, fname, lname, year):
• super().__init__(fname, lname)
• [Link] = year
• x = Student("Mike", “Typson", 2019)
• print([Link])
Add Methods
• class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
[Link] = year
def welcome(self):
print("Welcome", [Link],
[Link], "to the class of",
[Link])
Jika Anda menambahkan metode di kelas anak dengan nama yang
sama sebagai fungsi di kelas induk, pewarisan metode induk akan