Jenis Warisan di Python | Warisan Python [Dengan Contoh]

Diterbitkan: 2021-02-09

Daftar isi

pengantar

Perjuangan untuk kode yang bersih adalah pertempuran yang diikuti oleh semua programmer. Dan pertempuran itu dapat ditaklukkan dengan baju besi yang tepat dari konsep pemrograman berorientasi objek. Dan pemanfaatan konsep OOP yang tepat membantu kami meningkatkan penggunaan kembali kode, keterbacaan, kompleksitas waktu dan ruang yang optimal.

Coding dengan Python sangat menyenangkan. Ini memiliki sejumlah besar dukungan perpustakaan, berorientasi objek, kemampuan pemrograman GUI menjadikannya kue panas di antara semua bahasa pemrograman.

Warisan adalah salah satu fitur berorientasi objek yang paling banyak digunakan dan mengimplementasikannya dalam python adalah tugas yang antusias. Jadi, mari kita mulai sekarang!

Hal pertama yang pertama mari kita pahami definisi pewarisan.

Warisan

Pewarisan adalah proses untuk mendapatkan properti dan karakteristik (variabel dan metode) dari kelas lain. Dalam urutan hierarki ini, kelas yang mewarisi kelas lain disebut subkelas atau kelas anak, dan kelas lainnya adalah kelas induk.

Warisan dikategorikan berdasarkan hierarki yang diikuti dan jumlah kelas induk dan subkelas yang terlibat.

Ada lima jenis warisan:

  1. Warisan Tunggal
  2. Banyak Warisan
  3. Warisan Bertingkat
  4. Warisan Hirarkis
  5. Warisan Hibrida

Warisan Tunggal

Jenis pewarisan ini memungkinkan subkelas atau kelas turunan untuk mewarisi properti dan karakteristik kelas induk, ini menghindari duplikasi kode dan meningkatkan penggunaan kembali kode.

#kelas orang tua
kelas Atas :
saya = 5
def fun1 (sendiri):
print( "Hai, Anda berada di kelas induk" )

#subkelas
kelas Bawah (Di Atas):
saya = 10
def fun2 (sendiri):
print( "Hai, Anda berada di sub kelas" )

suhu1=Di bawah()
suhu2=Di atas()
suhu1.kesenangan1()
suhu1.kesenangan2()
suhu2.kesenangan1()
cetak (temp1.i)
cetak (temp2.i)
#temp2.fun2()

Baiklah, mari kita telusuri kode di atas.

Pada kode di atas “Above” adalah parent class dan “Below” adalah child class yang mewarisi parent class. Menerapkan pewarisan dalam python adalah tugas yang sederhana, kita hanya perlu menyebutkan nama kelas induk dalam tanda kurung kelas anak. Kami membuat objek dari kelas induk dan kelas anak, dan inilah poin menarik tentang pewarisan. Sebuah kelas anak dapat mengakses metode dan variabel dari kelas induk, sedangkan sebaliknya tidak benar.

Jadi dalam kode di atas objek temp1 dapat mengakses metode fun1 dan fun2 sedangkan objek temp2 hanya dapat mengakses metode fun1. Demikian pula, aturan yang sama berlaku untuk variabel dalam kode. Dan mengakses metode atau variabel kelas anak dari objek kelas induk akan menimbulkan kesalahan. Jika baris terakhir dalam kode tidak dikomentari maka itu menimbulkan kesalahan.

Banyak Warisan

Warisan ini memungkinkan kelas anak untuk mewarisi dari lebih dari satu kelas induk. Jenis pewarisan ini tidak didukung oleh kelas java, tetapi python mendukung jenis pewarisan ini. Ini memiliki keuntungan besar jika kita memiliki persyaratan untuk mengumpulkan banyak karakteristik dari kelas yang berbeda.

#orang tua kelas 1
kelas A :
demo1= 0
def fun1 (sendiri):
cetak(self.demo1)

#orang tua kelas 2
kelas B :
demo2= 0
def fun2 (sendiri):
cetak (self.demo2)

#kelas anak
kelas C (A, B):
def fun3 (sendiri):
print( "Hai, kamu di kelas anak" )

# kode utama
c = C()
c.demo1 = 10
c.demo2 = 5
c.kesenangan3()
print( “bilangan pertama adalah : “ ,c.demo1)
print( “bilangan kedua adalah : “ ,c.demo2)

Dalam kode di atas, kami telah membuat dua kelas induk "A", "B". Mengikuti sintaks pewarisan dalam python, kami telah membuat kelas anak, yang mewarisi kedua kelas "A" dan "B". Seperti yang telah dibahas sebelumnya bahwa kelas anak dapat mengakses metode dan variabel dari kelas induk, Kelas anak “C” dapat mengakses metode dari kelas induknya.

Warisan Bertingkat

Dalam pewarisan bertingkat, transfer sifat-sifat karakteristik dilakukan ke lebih dari satu kelas secara hierarkis. Untuk mendapatkan visualisasi yang lebih baik, kita dapat menganggapnya sebagai hubungan nenek moyang dengan cucu atau akar dengan daun pada pohon dengan lebih dari satu tingkat.

#orang tua kelas 1
kendaraan kelas :
def berfungsi (sendiri):
print( "kendaraan digunakan untuk transportasi" )

#anak kelas 1
kelas mobil (kendaraan):
roda def (sendiri):
print( "mobil memiliki 4 roda" )

#anak kelas 2
kelas electric_car (mobil):
spesialisasi def (sendiri):
print( "mobil listrik menggunakan listrik" )

listrik = mobil_listrik()
listrik.spesialisasi()
listrik.roda()
listrik.fungsi()

Setelah menjalankan kering kode di atas, kami telah membuat kelas "kendaraan", kemudian kami telah membuat mobil kelas yang mewarisi kendaraan kelas. Sekarang "kendaraan" adalah kelas induk dan "mobil" adalah kelas anak. Nanti kita buat class “electric_car”, sekarang class car adalah class parent dan class electric_car adalah class child, dan hubungan antara class kendaraan dan class electric_car adalah pewarisan bertingkat.

Di sini kelas mobil listrik dapat mengakses metode, variabel dari kedua kendaraan dan kelas mobil, sedangkan kelas mobil hanya dapat mengakses metode, variabel dari kelas kendaraan. Dan seperti yang dibahas, kendaraan kelas induk tidak dapat mengakses metode apa pun dari kelas anak.

Warisan Hirarkis

Warisan ini memungkinkan kelas untuk menjadi tuan rumah sebagai kelas induk untuk lebih dari satu kelas anak atau subkelas. Ini memberikan manfaat berbagi fungsi metode dengan beberapa kelas anak, sehingga menghindari duplikasi kode.

#kelas orang tua
kelas Induk :
def fun1 (sendiri):
print( "Hai, Anda berada di kelas induk" )

#anak kelas 1
kelas anak1 (Orangtua):
def fun2 (sendiri):
print( "Hai, kamu anak kelas 1" )

#anak kelas 2
kelas anak2 (Orangtua):
def fun3 (sendiri):
print( "Hai, kamu anak kelas 2" )

#anak kelas 3
kelas anak3 (Orangtua):
def fun4 (diri):
print( "Hai, kamu anak kelas 3" )

#program utama
anak_obj1 = anak3()
anak_obj2 = anak2()
anak_obj3 = anak1()
anak_obj1.fun1()
anak_obj1.fun4()
anak_obj2.fun1()
anak_obj2.fun3()
anak_obj3.fun1()
anak_obj3.fun2()

Dalam kode di atas, kita memiliki kelas induk tunggal dan beberapa kelas turunan yang mewarisi kelas induk yang sama. Sekarang semua kelas anak dapat mengakses metode dan variabel dari kelas induk. Kami telah membuat kelas "Induk" dan 3 kelas anak "child1", "child2", "child3", yang mewarisi kelas induk yang sama "Parent".

Lihat: Ide Proyek Sumber Terbuka Python

Warisan Hibrida

Suatu pewarisan dikatakan pewarisan hibrida jika lebih dari satu jenis pewarisan diimplementasikan dalam kode yang sama. Fitur ini memungkinkan pengguna untuk memanfaatkan fitur pewarisan dengan sebaik-baiknya. Ini memenuhi persyaratan penerapan kode yang membutuhkan banyak pewarisan dalam implementasi.

kelas A:
def fun1(diri):
print(“Hai, kamu di kelas A”) kelas B(A):
def fun2(diri):
print("Hai, kamu di kelas B") kelas C(A):
pasti menyenangkan3(diri):
print(“Hai, kamu di kelas C”) kelas D(C,A): #baris 13
def fun4(diri):
print("Hai, kamu kelas D")#program utama
ref = D()
ref.fun4()
ref.fun3()
ref.kesenangan1()

Pada kode di atas, kita dapat melihat bahwa kita telah mengimplementasikan lebih dari satu jenis pewarisan. Kelas A, B, C mengimplementasikan pewarisan hierarki, dan kelas A, C, D mengimplementasikan pewarisan bertingkat. Tidak, warisan individu tersebut memiliki properti masing-masing untuk mengakses metode dan variabel dari kelas induk. Juga, ada hal yang perlu diperhatikan.

Saat kami menerapkan pewarisan bertingkat, kami mengikuti sintaks seperti "child_class(parent_class1, parent_class2)". Tetapi sintaks ini akan menimbulkan kesalahan jika "parent_class1" secara hierarkis di atas "parent_class2". Jika kita ingin mengimplementasikan sintaks ini, maka “parent_class1” harus berada pada level yang lebih rendah dari “parent_class2”. Misalnya pada kode di atas, jika baris 13 memiliki kelas sintaks D(A, C) maka kode tersebut tidak akan berfungsi karena kelas C secara hierarkis lebih rendah dari kelas A.

Pelajari kursus ilmu data dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Baca: Ide & Topik Proyek Python

Kesimpulan

Kami telah melalui penggunaan dan kebutuhan warisan dan memahami definisi warisan. Selain itu, kita telah mempelajari jenis-jenis pewarisan dan menelusuri kode-kode implementasi dan penjelasan dari setiap jenis pewarisan. Memahami aturan variabel dan metode mengakses dalam berbagai jenis warisan.

Sekarang setelah Anda mengetahui berbagai jenis pewarisan dalam python, coba terapkan dan coba gunakan dalam kode Anda. Coba optimalkan kode Anda dengan pemanfaatan warisan yang tepat.

Jika Anda penasaran untuk belajar tentang ilmu data, lihat Diploma PG IIIT-B & upGrad dalam Ilmu Data yang dibuat untuk para profesional yang bekerja dan menawarkan 10+ studi kasus & proyek, lokakarya praktis, bimbingan dengan pakar industri, 1- on-1 dengan mentor industri, 400+ jam pembelajaran dan bantuan pekerjaan dengan perusahaan-perusahaan top.

Apa perbedaan antara pewarisan berganda dan pewarisan bertingkat?

Banyak programmer pemula sering bingung antara pewarisan berganda dan pewarisan bertingkat. Berikut ini mengilustrasikan beberapa perbedaan signifikan antara kedua jenis warisan ini.
Beberapa Warisan -
1. Ketika kelas anak mewarisi sifat dan karakteristiknya dari lebih dari satu kelas dasar, jenis pewarisan seperti itu dikenal sebagai Warisan Berganda.
2. Ini tidak digunakan secara luas karena Multiple Inheritance bisa sangat rumit untuk dipahami.
3. Hanya memiliki dua tingkat kelas: kelas dasar dan kelas turunan.
Warisan Bertingkat
1. Warisan di mana kelas anak mewarisi properti dari kelas dasarnya yang selanjutnya mewarisi properti dari kelas dasar lain, membuat kelas anak sebelumnya dikenal sebagai Warisan Bertingkat.
2. Warisan ini memiliki tujuan yang besar dan karenanya digunakan secara luas.
3. Setidaknya memiliki tiga tingkatan kelas: kelas dasar, kelas menengah, dan kelas turunan.

Apa yang Anda pahami tentang Warisan Hibrida?

Hybrid Inheritance adalah jenis warisan yang unik. Alih-alih memiliki konsep baru, seperti namanya, ini adalah kombinasi dari dua atau lebih jenis pewarisan. Misalnya, kelas yang menunjukkan pewarisan berganda dan bertingkat adalah contoh pewarisan hibrida.

Apa yang Anda ketahui tentang pengubah akses dengan Python?

Dalam Python, ada 3 jenis pengubah akses yang disebutkan di bawah ini:
1. Pengubah Akses Publik - Anggota publik dari suatu kelas dapat diakses oleh bagian mana pun dari program. Dalam Python, jika penentu akses anggota data atau fungsi anggota tidak ditentukan, maka itu adalah publik secara default.
2. Pengubah Akses Terproteksi - Jika anggota data atau fungsi anggota didefinisikan sebagai dilindungi, maka itu hanya dapat diakses oleh kelas turunan dari kelas tersebut.
3. Pengubah Akses Pribadi - Pengubah akses pribadi adalah penentu akses paling aman. Anggota pribadi hanya dapat diakses di dalam kelas di mana mereka didefinisikan.