Perbezaan Antara Pewarisan dan Penangkapan

Warisan vs Penangkapan

Warisan dan Penangkapan adalah dua konsep penting yang terdapat dalam OOP (Contoh Pemrograman Berorientasi Objek: C ++). Secara ringkas, kedua-dua Perlindungan dan Warisan berurusan dengan menyediakan sifat atau tingkah laku tambahan kepada kelas. Warisan adalah keupayaan untuk kelas mewarisi sifat dan tingkah laku dari kelas induk dengan memperluasnya. Sebaliknya, Containership adalah keupayaan kelas untuk memasukkan objek kelas yang berbeza sebagai data ahli.

Apakah warisan itu?

Seperti yang disebutkan di atas, Warisan adalah keupayaan untuk kelas mewarisi sifat dan tingkah laku dari kelas induk dengan memperluasnya. Warisan pada dasarnya menyediakan rezab kod dengan membenarkan memperluaskan sifat dan tingkah laku kelas yang sedia ada oleh kelas yang baru ditakrifkan. Jika kelas A memanjangkan B, maka kelas B dipanggil kelas induk (atau kelas super) dan kelas A dipanggil kelas kanak-kanak (atau kelas kelas / sub). Dalam senario contoh ini, kelas A akan mewarisi semua atribut dan kaedah awam dan kaedah kelas super (B). Subkelas boleh menanggalkan pilihan (menyediakan fungsi baru atau lanjutan ke kaedah) perilaku yang diwarisi dari kelas induk. Warisan mewakili hubungan "is-a" dalam OOP. Ini pada asasnya bermakna A juga adalah B. Dengan kata lain, B boleh menjadi kelas dengan penerangan umum entiti dunia tertentu tetapi A menentukan suatu pengkhususan tertentu. Dalam masalah pengaturcaraan dunia sebenar, kelas Orang boleh diperluas untuk mencipta kelas Pekerja. Ini dipanggil pengkhususan. Tetapi anda juga boleh buat kelas Pekerja terlebih dahulu dan kemudian umumkannya kepada kelas Orang juga (iaitu penyebaran). Dalam contoh ini, Pekerja akan mempunyai semua sifat dan tingkah laku Orang (iaitu Pekerja juga Orang) dan mungkin mengandungi beberapa fungsi tambahan (jadi, Orang bukanlah Pekerja) juga.

Apakah Perantaraan?

Kontainer adalah keupayaan kelas untuk memasukkan objek kelas yang berbeza sebagai data ahli. Sebagai contoh, kelas A boleh mengandungi objek kelas B sebagai ahli. Di sini, semua kaedah awam (atau fungsi) yang ditakrifkan dalam B boleh dilaksanakan dalam kelas A. Kelas A menjadi bekas, manakala kelas B menjadi kelas yang terkandung. Kontainer juga dirujuk sebagai Komposisi. Dalam contoh ini, boleh dikatakan bahawa kelas A terdiri daripada kelas B. Di OOP, Containership mewakili hubungan "has-a". Adalah penting untuk diperhatikan bahawa, walaupun bekas mempunyai akses untuk melaksanakan semua kaedah awam kelas yang terkandung, ia tidak dapat mengubah atau menyediakan fungsi tambahan. Apabila ia datang kepada masalah pengaturcaraan dunia sebenar, objek Kelas TextBox mungkin terkandung dalam Borang kelas, dan dengan itu boleh dikatakan bahawa Borang mengandungi TextBox (atau secara alternatif, Borang terdiri daripada TextBox).

Perbezaan antara Pusaka dan Penangkapan

Walaupun Warisan dan Penangkapan adalah dua konsep OOP, mereka agak berbeza dengan apa yang mereka benarkan programmer dapat dicapai. Pewarisan adalah keupayaan untuk kelas mewarisi sifat dan tingkah laku dari kelas induk dengan memperluasnya, manakala Containership adalah keupayaan kelas untuk memasukkan objek kelas yang berbeza sebagai data ahli. Sekiranya kelas dilanjutkan, ia mewarisi semua sifat / tingkah laku awam dan tingkah laku dan tingkah laku tersebut boleh ditindih oleh subkelas. Tetapi jika satu kelas terkandung di dalam yang lain, bekas tidak mendapat keupayaan untuk menukar atau menambah tingkah laku kepada yang terkandung. Pewarisan mewakili hubungan "is-a" dalam OOP, manakala Perlimpahan merupakan hubungan "has-a".