Logo ms.removalsclassifieds.com

Perbezaan Antara Komposisi dan Pewarisan (Dengan Jadual)

Isi kandungan:

Anonim

Melalui penggunaan versi terdahulu untuk mencipta perisian baharu menggunakan konsep kebolehgunaan semula dirujuk sebagai kod boleh guna semula dalam pengaturcaraan. Dalam syarikat teknologi komputer, kebolehgunaan semula kod dianggap sebagai fungsi produktiviti yang kritikal. Dalam pengaturcaraan entiti, terdapat dua cara asas untuk mentakrifkan perhubungan ini: pewarisan dan komposisi.

Komposisi vs Warisan

Perbezaan antara gubahan dan warisan ialah gubahan digunakan untuk membina kelas yang mempunyai hubungan "mempunyai-a" dan bukannya hubungan "adalah-a" seperti dalam warisan. Pewarisan membolehkan fungsi ahli melalui satu kelas menjadi hak milik yang lain tanpa perlu mengekodkannya secara langsung dalam kelas.

Warisan kelas dikembalikan semula dengan gubahan artikel. Komposisi digambarkan sebagai penggunaan satu entiti dalam entiti yang lain. Memandangkan mudah untuk membina kelas rumit menggunakan kelas yang diterbitkan sebelum ini, direka bentuk dengan baik sebagai komponen, seseorang sentiasa boleh menggunakan objek sebagai medan dalam kelas lain. Semua itu dirujuk sebagai komposisi.

Dalam OOP, pewarisan merujuk kepada proses di mana satu entiti memperoleh ciri-ciri yang lain. Ini antara cara paling berkesan untuk menguatkuasakan penggunaan semula kod dalam OOP. Kelas baharu boleh dibentuk dengan mencipta hubungan ibu bapa-anak dengan kelas semasa dengan menggunakan warisan. Kelas boleh mewarisi keadaan dan tingkah laku yang kerap digunakan daripada beberapa kelas lain kerana pengkomputeran berorientasikan objek.

Jadual Perbandingan Antara Komposisi dan Pewarisan

Parameter Perbandingan

Komposisi

pusaka

Kepentingan Kami hanya mengisytiharkan jenis yang kami mahu gunakan dalam komposisi, dan ia boleh menyimpan beberapa pelaksanaan yang boleh berbeza-beza semasa masa jalan. Kami mentakrifkan kelas yang kami pakai (superclass) dalam warisan, dan ia tidak boleh diubah semasa pelaksanaan.
Penggabungan Kelas Keupayaan untuk menggabungkan fungsi daripada kelas yang berbeza disediakan melalui gubahan. Kami hanya boleh melanjutkan satu kelas dalam kes ini; dengan kata lain, banyak kelas tidak boleh dilanjutkan kerana Java tidak mendayakan berbilang warisan.
Kefungsian Komposisi membolehkan kami menguji kefungsian kelas yang kami gunakan tanpa perlu risau sama ada kelas itu adalah kelas ibu bapa atau anak. Warisan memerlukan penggunaan kelas induk untuk menguji kelas anak.
Penggunaan Semula Kod Malah kod dari kelas akhir boleh digunakan semula terima kasih kepada komposisi. Kelas akhir tidak boleh dilanjutkan melalui pewarisan.
perhubungan Ia adalah situasi "ada-a". Ia adalah situasi "is-a".

Apakah Komposisi?

Gubahan ialah satu bentuk pengagregatan di mana pemilikan tersirat. Terdapat pergantungan kerana satu objek bergantung pada yang lain. Pertimbangkan objek berikut: objek sekolah dan objek bilik darjah. Objek sekolah diperlukan untuk objek bilik darjah wujud. Objek bilik darjah rosak jika objek sekolah dimusnahkan. Akibatnya, kedua-dua item ini saling bergantung. Oleh itu, ia sememangnya satu gubahan. Dengan kata lain, kami memanggil sesuatu gubahan jika ia tidak boleh wujud tanpa keseluruhannya.

Sambungan lanjut antara kelas yang diberikan oleh OOP ialah komposisi, juga dikenali sebagai hubungan mempunyai-a. Jika entah bagaimana ciri-ciri satu objek mesti dimasukkan ke dalam ciri-ciri yang lain, hubungan itu memerlukan komposisi. Untuk mencipta kelas baharu daripada kelas induk, setiap objek kelas mesti diisytiharkan sebagai ahli kelas semasa.

Komposisi digambarkan sebagai penggunaan objek di dalam objek lain. Entiti boleh digunakan sebagai medan dalam mana-mana kelas dengan kerap. Dalam komposisi, mereka menggunakan entiti yang merupakan sebahagian daripada kelas. Komposisi item, tidak seperti warisan kelas, diterangkan secara berterusan pada masa jalan oleh entiti yang mendapatkan sambungan ke objek lain.

Apakah Warisan?

Warisan ialah apabila kelas baharu menggunakan atribut dan kaedah kelas sedia ada. Kelas sedia ada ini dirujuk sebagai kelas induk, kelas super atau kelas asas. Kelas baharu dirujuk sebagai kelas kanak-kanak, sub atau terbitan. Oleh kerana pewarisan, pencipta tidak perlu menulis kod dari awal. Dia boleh menggunakan warisan untuk menggunakan semula sifat dan kaedah idea terbitan dalam kelas baharu. Akibatnya, warisan meningkatkan penggunaan semula kod. Warisan boleh bersifat satu peringkat, berbilang peringkat, hierarki, Berbilang dan Hibrid.

Jika kami ingin membina kelas baharu tetapi nampaknya ada satu dengan beberapa kod yang kami perlukan, kami boleh mengekstrak kelas baharu kami daripada kelas semasa. Kami boleh menggunakan semula sifat dan kaedah kelas semasa dan bukannya menulisnya sendiri. Subkelas mewarisi kebanyakan wakil kelas supernya. Pembina bukan peserta, jadi mereka tidak diturunkan kepada subkelas, tetapi fungsi kelas super Object() { [kod asli] } boleh dipanggil daripada subkelas.

Perbezaan Utama Antara Komposisi dan Pewarisan

Kesimpulan

Memandangkan kelas yang rumit adalah lebih mudah untuk dibina menggunakan kelas yang ditulis sebelum ini, direka bentuk dengan baik, kadangkala anda akan mahu menggunakan objek sebagai medan dalam kelas lain. Di situlah keupayaan komposisi masuk. Memandangkan warisan membolehkan anda menggunakan semula kod dengan mengembangkan kelas dengan sedikit usaha, ia merupakan alat yang berguna untuk mewujudkan perhubungan antara kelas.

Komposisi lebih disukai secara umum kerana ia membolehkan anda menggunakan objek tanpa kehilangan data dalamannya, di mana komposisi berguna. Walaupun warisan mempunyai kelemahannya, komposisi objek menimbulkan isu prestasi yang sama dari segi pembentukan dan pemusnahan objek.

Perbezaan Antara Komposisi dan Pewarisan (Dengan Jadual)