Pewarisan Berganda
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Python di Coddy. Pelajaran 20 dari 64.
Multiple inheritance memungkinkan sebuah class mewarisi dari lebih dari satu class induk, dengan menggabungkan fungsionalitas dari berbagai sumber.
Berikut dua class induk:
class Animal:
def __init__(self, name):
self.name = name
def eat(self):
return f"{self.name} is eating"
class Flyable:
def fly(self):
return f"{self.name} is flying"Buat class turunan yang mewarisi dari kedua class induk:
class Bird(Animal, Flyable):
def __init__(self, name, species):
super().__init__(name) # Memanggil __init__ milik Animal
self.species = species
def sing(self):
return f"{self.name} is singing"Sintaks class Bird(Animal, Flyable): berarti Bird mewarisi Animal dan Flyable.
Buat object burung dan gunakan method dari kedua induknya:
sparrow = Bird("Sparrow", "House sparrow")Panggil method dari class induk pertama:
print(sparrow.eat())Panggil method dari class induk kedua:
print(sparrow.fly())Panggil method milik burung itu:
print(sparrow.sing())Output:
Sparrow is eating
Sparrow is flying
Sparrow is singingKamu dapat memeriksa urutan pewarisan:
print(Bird.__mro__) # Urutan resolusi methodIni menunjukkan parent mana yang diperiksa lebih dahulu saat mencari method.
Poin Penting: Pewarisan berganda menggunakan sintaks class Child(Parent1, Parent2):. Class anak mendapatkan semua method dari semua class induk. Python memeriksa class induk dari kiri ke kanan saat mencari method.
Tantangan
SedangDalam tantangan ini, kamu akan menerapkan sistem class multi-file yang menunjukkan pewarisan berganda dengan smartphone. Setiap class diatur dalam filenya sendiri agar kode lebih terorganisasi.
Kamu perlu mengedit file-file ini:
device.py- Terapkan base classDeviceinternet.py- Terapkan base classInternetsmartphone.py- Terapkan classSmartphoneyang mewarisi kedua base classdriver.py- Terapkan kasus uji yang akan memverifikasi bahwa implementasimu berfungsi dengan benar
Setiap file berisi komentar TODO terperinci yang akan memandumu langkah demi langkah dalam penerapannya.
Coba sendiri
# TODO: Impor class Smartphone dari smartphone.py
# Buat smartphone dan uji method-nya
# TODO: Buat object Smartphone dengan merek "Apple" dan model "iPhone 13"
my_phone = None
# TODO: Panggil method power_on() pada smartphone dan cetak hasilnya
# TODO: Panggil method connect() pada smartphone dan cetak hasilnya
# TODO: Panggil method make_call() pada smartphone dengan parameter "123-456-7890" dan cetak hasilnyaPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPclass vs objectParameter selfmethodAtributMethod Konstruktor (__init__)Rangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan DasarFungsi super()Penimpaan MethodPewarisan BergandaUrutan Resolusi MethodRingkasan: Hierarki Karyawan5Polimorfisme
Meninjau Ulang Method OverridingDuck Typingclass dan method AbstrakDesain InterfaceRingkasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanMixinsMetode Statis dan Metode ClassDecorator ClassPengelola Konteks11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola Composite3Property class
Variabel instance vs variabel classDekorator propertyAtribut privatRangkuman: Pengelola Rekening Bank6Enkapsulasi
Anggota Public, Protected, PrivateModifier AksesPenyembunyian InformasiDecorator Property Tingkat LanjutUlasan: Sistem Catatan Siswa12Proyek: Manajemen Perpustakaan
Ikhtisar Proyekclass Buku dan PenggunaSistem PeminjamanFitur PencarianAntarmuka AdminPengujian dan IntegrasiLatihan sendiri: Compiler Python online