Warisan Python
Warisan Python
Warisan memungkinkan kita untuk mendefinisikan kelas yang mewarisi semua metode dan properti dari kelas lain.
Kelas induk adalah kelas yang diwarisi, juga disebut kelas dasar.
Kelas anak adalah kelas yang mewarisi dari kelas lain, juga disebut kelas turunan.
Buat Kelas Orang Tua
Kelas apa pun bisa menjadi kelas induk, jadi sintaksnya sama dengan membuat kelas lain:
Contoh
Buat kelas bernama Person
, dengan
firstname
dan lastname
properti, dan printname
metode:
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname,
self.lastname)
#Use the Person class to create an object, and then
execute the printname method:
x = Person("John", "Doe")
x.printname()
Buat Kelas Anak
Untuk membuat kelas yang mewarisi fungsionalitas dari kelas lain, kirim kelas induk sebagai parameter saat membuat kelas anak:
Contoh
Buat kelas bernama Student
, yang akan mewarisi properti dan metode dari Person
kelas:
class Student(Person):
pass
Catatan: Gunakan pass
kata kunci saat Anda tidak ingin menambahkan properti atau metode lain ke kelas.
Sekarang kelas Siswa memiliki properti dan metode yang sama dengan kelas Person.
Contoh
Gunakan Student
kelas untuk membuat objek, lalu jalankan printname
metode:
x = Student("Mike", "Olsen")
x.printname()
Tambahkan Fungsi __init__()
Sejauh ini kita telah membuat kelas anak yang mewarisi properti dan metode dari induknya.
Kami ingin menambahkan __init__()
fungsi ke kelas anak (bukan pass
kata kunci).
Catatan: Fungsi __init__()
ini dipanggil secara otomatis setiap kali kelas digunakan untuk membuat objek baru.
Contoh
Tambahkan __init__()
fungsi ke
Student
kelas:
class Student(Person):
def __init__(self, fname, lname):
#add properties etc.
Saat Anda menambahkan __init__()
fungsi, kelas anak tidak akan lagi mewarisi fungsi induknya __init__()
.
Catatan:__init__()
Fungsi anak mengesampingkan pewarisan
__init__()
fungsi induk.
Untuk mempertahankan pewarisan fungsi induk __init__()
, tambahkan panggilan ke fungsi induk __init__()
:
Contoh
class Student(Person):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
Sekarang kita telah berhasil menambahkan fungsi __init__(), dan mempertahankan warisan dari kelas induk, dan kita siap untuk menambahkan fungsionalitas dalam
__init__()
fungsi tersebut.
Gunakan Fungsi super()
Python juga memiliki super()
fungsi 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)
Dengan menggunakan super()
fungsi, Anda tidak harus menggunakan nama elemen induk, secara otomatis akan mewarisi metode dan properti dari induknya.
Tambahkan Properti
Contoh
Tambahkan properti yang dipanggil graduationyear
ke
Student
kelas:
class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)
self.graduationyear
= 2019
Pada contoh di bawah, tahun 2019
harus berupa variabel, dan diteruskan ke
Student
kelas saat membuat objek siswa. Untuk melakukannya, tambahkan parameter lain dalam fungsi __init__():
Contoh
Tambahkan year
parameter, dan berikan tahun yang benar saat membuat objek:
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear
= year
x = Student("Mike", "Olsen", 2019)
Tambahkan Metode
Contoh
Tambahkan metode yang dipanggil welcome
ke
Student
kelas:
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear
= year
def welcome(self):
print("Welcome",
self.firstname, self.lastname, "to the class of", self.graduationyear)
Jika Anda menambahkan metode di kelas anak dengan nama yang sama dengan fungsi di kelas induk, pewarisan metode induk akan diganti.