Warisan vs kontainer
Pewarisan dan kontainer adalah dua konsep penting yang ditemukan dalam OOP (Contoh Pemrograman Berorientasi Objek: C ++). Secara sederhana, baik kontainer dan warisan berurusan dengan menyediakan properti atau perilaku tambahan untuk suatu kelas. Warisan adalah kemampuan kelas untuk mewarisi sifat dan perilaku dari kelas induk dengan memperluasnya. Di sisi lain, containership adalah kemampuan kelas untuk berisi objek dari kelas yang berbeda sebagai data anggota.
Apa itu warisan?
Seperti disebutkan di atas, warisan adalah kemampuan kelas untuk mewarisi sifat dan perilaku dari kelas orang tua dengan memperluasnya. Warisan pada dasarnya memberikan penggunaan kembali kode dengan memungkinkan memperluas properti dan perilaku kelas yang sudah ada oleh kelas yang baru didefinisikan. Jika kelas A meluas, maka kelas B disebut kelas induk (atau kelas super) dan kelas A disebut kelas anak (atau kelas turunan kelas/sub kelas). Dalam contoh ini skenario, kelas A akan mewarisi semua atribut publik dan terlindungi dan metode kelas super (b). Subkelas dapat secara opsional override (menyediakan fungsionalitas baru atau diperluas untuk metode) perilaku yang diwarisi dari kelas induk. Warisan mewakili hubungan "is-a" di oop. Ini pada dasarnya berarti bahwa A juga b. Dengan kata lain, B dapat menjadi kelas dengan deskripsi umum entitas dunia nyata tertentu tetapi A menentukan spesialisasi tertentu. Dalam masalah pemrograman dunia nyata, kelas orang dapat diperluas untuk membuat kelas karyawan. Ini disebut spesialisasi. Tetapi Anda juga bisa membuat kelas karyawan terlebih dahulu dan kemudian menggeneralisasikannya ke kelas seseorang juga (saya.e. generalisasi). Dalam contoh ini, karyawan akan memiliki semua properti dan perilaku orang tersebut (i.e. Karyawan juga seseorang) dan mungkin berisi beberapa fungsi tambahan (jadi, orang bukan karyawan) juga.
Apa itu Containership?
Containership adalah kemampuan kelas untuk berisi objek dari kelas yang berbeda sebagai data anggota. Misalnya, Kelas A dapat berisi objek Kelas B sebagai anggota. Di sini, semua metode publik (atau fungsi) yang didefinisikan dalam B dapat dieksekusi dalam kelas a. Kelas A menjadi wadah, sedangkan Kelas B menjadi kelas yang terkandung. Containership juga disebut sebagai komposisi. Dalam contoh ini, dapat dikatakan bahwa Kelas A terdiri dari Kelas B. Di OOP, kontainer mewakili hubungan "has-a". Penting untuk dicatat bahwa, meskipun wadah memiliki akses untuk melaksanakan semua metode publik dari kelas yang terkandung, ia tidak dapat mengubah atau memberikan fungsionalitas tambahan. Ketika datang ke masalah pemrograman dunia nyata, objek kotak teks kelas dapat terkandung dalam bentuk kelas, dan dengan demikian dapat dikatakan bahwa formulir berisi kotak teks (atau sebagai alternatif, suatu bentuk terdiri dari kotak teks).
Perbedaan antara warisan dan kontainer
Meskipun warisan dan kemandirian adalah dua konsep OOP, mereka sangat berbeda dalam apa yang memungkinkan programmer untuk mencapai. Warisan adalah kemampuan untuk kelas untuk mewarisi sifat dan perilaku dari kelas orang tua dengan memperluasnya, sedangkan containership adalah kemampuan kelas untuk mengandung objek dari kelas yang berbeda sebagai data anggota. Jika suatu kelas diperpanjang, ia mewarisi semua sifat/perilaku publik dan yang dilindungi dan perilaku tersebut dapat ditimpa oleh subkelas. Tetapi jika suatu kelas terkandung dalam yang lain, wadah tidak mendapatkan kemampuan untuk mengubah atau menambah perilaku ke yang terkandung. Warisan mewakili hubungan "is-a" di OOP, sedangkan containership mewakili hubungan "has-a".