- Karakteristik warisan
- Hirarki
- Polimorfisme
- Jenis warisan
- Warisan unik
- Warisan multi-level
- Warisan hierarkis
- Warisan hibrida
- Warisan berganda
- Jenis warisan dari kelas dasar
- Warisan publik
- Warisan yang dilindungi
- Warisan pribadi
- Contoh
- Contoh Python
- Contoh di C ++
- Referensi
The warisan dalam objek - pemrograman berorientasi adalah cara untuk mengatur objek dalam hirarki dari umum ke spesifik. Ini adalah gadget yang digunakan untuk memperluas kelas ke kelas lain, mempertahankan eksekusi yang serupa.
Di sebagian besar bahasa berorientasi objek berbasis kelas, objek yang dibuat melalui pewarisan, disebut objek turunan, mendapatkan semua properti dan perilaku objek induk.
Bukti sederhana warisan dalam orientasi objek. Sumber: Pluke / CC0 Creative Commons CC0 1.0 Domain Publik Universal
Oleh karena itu, kualitaslah yang merepresentasikan hubungan antar kelas yang berbeda. Pewarisan memungkinkan suatu kelas memiliki perilaku yang sama dengan kelas lain dan untuk memperluas atau menyesuaikan perilaku tersebut untuk menyediakan tindakan khusus untuk kebutuhan tertentu.
Pewarisan dapat membantu merepresentasikan objek yang memiliki beberapa perbedaan dan beberapa kesamaan dalam cara kerjanya. Anda dapat meletakkan semua fungsionalitas yang dimiliki objek yang sama di kelas dasar, dan kemudian menentukan satu atau beberapa subkelas dengan fungsionalitas kustom Anda sendiri.
Karakteristik warisan
Pewarisan adalah salah satu karakteristik kunci dari pemrograman berorientasi objek, digunakan untuk mendefinisikan kelas baru dari kelas yang sudah ada.
Artinya, kelas baru dapat diturunkan dari kelas dasar yang sudah ada, menambahkan fitur baru. Anda tidak perlu menulis dari awal. Oleh karena itu, pewarisan menyediakan cara untuk dengan mudah menggunakan kembali kode yang ada.
Jika Anda sudah memiliki kelas yang melakukan hampir semua yang Anda inginkan, Anda dapat membuat subkelas di mana beberapa perilakunya diganti sebagian, atau mungkin beberapa fungsionalitas baru ditambahkan.
Kelas turunan mewarisi semua metode kelas dasar, kecuali untuk berikut ini:
- Pembuat, penghancur, dan pembuat salinan dari kelas dasar.
- Operator kelebihan beban dari kelas dasar.
- Fungsi ramah kelas dasar.
Hirarki
Seperti silsilah keluarga, pewarisan berfungsi untuk membentuk hierarki kelas. Penting untuk dicatat bahwa atribut yang ditentukan untuk kelas dasar akan hadir secara otomatis di kelas turunan. Juga, metode untuk kelas dasar akan bekerja untuk turunannya.
Kelas dikatakan sebagai subkelas dari kelas yang diwarisi. Di sisi lain, kelas ini akan menjadi kelas super Anda. Kelas yang paling umum dapat disebut sebagai kelas dasar, karena kelas tersebut berada di dasar hierarki.
Polimorfisme
Pewarisan sangat populer di beberapa bahasa dengan tipe statis, karena memungkinkan pemrogram untuk menghindari beberapa batasan tipe statis.
Objek yang mewarisi dari objek lain dianggap sebagai subtipe dari objek itu. Contohnya bisa menjadi objek "instruktur" dan "siswa", yang masing-masing diwarisi dari "orang".
Jika instruktur dan siswa memiliki tipe orang yang sama, Anda dapat menulis fungsi yang menerima tipe orang sebagai parameter dan yang bekerja pada instruktur dan objek siswa, karena keduanya adalah ahli waris orang.
Jenis warisan
Warisan unik
Ketika kelas turunan mewarisi properti dan perilaku kelas dasar tunggal. Artinya, satu kelas hanya meluas ke satu kelas lainnya.
Warisan multi-level
Mengacu pada gadget tempat Anda dapat mewarisi dari kelas turunan, menjadikan kelas turunan ini sebagai kelas dasar untuk kelas baru. Artinya, ini dihasilkan ketika kelas turunan dibuat dari kelas turunan lain.
Warisan hierarkis
Dalam pewarisan ini, banyak subclass yang diwarisi dari satu kelas. Artinya, itu terjadi ketika satu kelas dasar diwarisi oleh lebih dari satu kelas turunan.
Warisan hibrida
Ini adalah warisan yang dihasilkan ketika salah satu dari tiga warisan sebelumnya digabungkan (tunggal, hierarki dan bertingkat).
Warisan berganda
Ini sesuai dengan angka pewarisan ketika sebuah kelas mewarisi dari lebih dari satu superkelas. Kekurangan dari jenis warisan ini adalah bahwa kelas turunan harus menangani ketergantungan yang dimilikinya pada dua kelas dasar.
Di sisi lain, jenis pewarisan ini memungkinkan pemrogram untuk membangun kelas yang menggabungkan aspek beberapa kelas dan hierarki yang sesuai.
Jenis warisan dari kelas dasar
Warisan publik
Ketika sebuah kelas diturunkan dari kelas dasar publik, anggota publik dari kelas dasar menjadi anggota publik dari kelas turunan dan anggota yang dilindungi dari kelas dasar menjadi anggota yang dilindungi dari kelas turunan.
Anggota privat superclass tidak akan pernah bisa diakses langsung dari kelas turunan, tapi bisa diakses dengan panggilan yang dibuat ke publik dan anggota yang dilindungi dari kelas dasar.
Warisan yang dilindungi
Saat Anda membuat kelas yang mewarisi dari superclass yang dilindungi, baik publik maupun anggota yang dilindungi dari superclass ini akan menjadi anggota yang dilindungi dari kelas turunan.
Warisan pribadi
Ketika subclass dibuat dari superclass privat, anggota publik dan yang dilindungi dari superclass ini akan menjadi anggota privat dari subclass tersebut.
Contoh
Contoh Python
Untuk menunjukkan bagaimana prinsip pewarisan bekerja, kami akan mengambil robot atau robot kelas yang lebih baik dalam bahasa pemrograman Python. Untuk melakukan ini, kelas yang disebut RobotMédico (PhysicianRobot) akan ditentukan, yang diturunkan dari superclass Robot.
Jika Anda melihat kode kelas RobotMédico, Anda dapat melihat bahwa tidak ada atribut atau metode yang ditentukan di kelas ini.
Karena kelas RobotMedico adalah subkelas Robot, kelas RobotMedico mewarisi metode __init__ dan say_hi dalam kasus ini. Mewarisi metode ini berarti bahwa metode tersebut dapat digunakan seolah-olah telah ditentukan di kelas RobotMédico.
Ketika sebuah instance RobotMedico dibuat, fungsi __init__ juga akan membuat atribut nama. Metode say_hi dapat diterapkan ke objek "y" dari RobotMédico, seperti yang dapat dilihat pada hasil kode sebelumnya.
Contoh di C ++
Sebuah kelas bisa mewarisi dari lebih dari satu kelas, yang berarti kelas bisa mewarisi data dan fungsi dari beberapa kelas super. Untuk menentukan kelas turunan, Anda menggunakan daftar turunan kelas untuk menentukan kelas dasar.
Sebuah daftar turunan kelas dalam C ++ menamai satu atau beberapa kelas dasar dan memiliki bentuk berikut: class turunan-class: access-specifier base-class, di mana access-specifier bersifat publik, dilindungi, atau privat, dan kelas dasar adalah nama kelas yang ditentukan sebelumnya. Jika penentu akses tidak digunakan, pribadi diambil secara default.
Superkelas "Shape" dan kelas turunannya "Rectangle" dapat dianggap sebagai berikut:
Ketika kode di atas dikompilasi dan dijalankan, output berikut terjadi: "Total area: 35".
Referensi
- Dave Braunschweig (2020). Warisan dan Polimorfisme. Komunitas Rebus. Diambil dari: press.rebus.community.
- Kursus Python (2020). Warisan. Diambil dari: python-course.eu.
- Mentor Data (2020). R Warisan. Diambil dari: datamentor.io.
- Tutorials Point (2020). C ++ Warisan. Diambil dari: tutorialspoint.com.
- Informasi-bersih (2020). Berbagai Jenis Warisan. Diambil dari: net-informations.com.