Multiple Inheritance vs. Multiple Interface Implementation in Java
Java menyimpang daripada pengaturcaraan berorientasikan objek tradisional dengan tidak membenarkan berbilang warisan tetapi membenarkan berbilang antara muka untuk dilaksanakan dalam sesebuah kelas. Memahami rasional di sebalik keputusan ini memerlukan menyelidiki perbezaan asas antara warisan dan pelaksanaan antara muka.
Warisan
Warisan membolehkan subkelas mewarisi sifat dan kaedah satu atau lebih banyak kelas ibu bapa. Proses ini membenarkan penggunaan semula kod dan penciptaan subkelas khusus. Walau bagaimanapun, berbilang warisan boleh memperkenalkan kerumitan:
Pelaksanaan Antara Muka
Antaramuka, sebaliknya, mentakrifkan satu set tingkah laku (kaedah) yang kelas mesti melaksanakan tetapi tidak menyediakan sebarang pelaksanaan. Mereka menentukan "apa" tanpa menyatakan "bagaimana." Gandingan longgar ini membolehkan berbilang antara muka dilaksanakan dalam kelas, memudahkan penggunaan semula kod dan polimorfisme.
Mengapa Java Membenarkan Berbilang Antara Muka tetapi Bukan Warisan
Pilihan untuk membenarkan berbilang pelaksanaan antara muka sambil melarang warisan berbilang berpunca daripada peranan berbeza yang mereka mainkan dalam reka bentuk berorientasikan objek. Antara muka hanya menentukan kefungsian kelas, tanpa menentukan pelaksanaannya. Antara muka berbilang membenarkan reka bentuk yang fleksibel dan boleh digubah, membolehkan kelas melaksanakan gelagat tertentu mengikut keperluan.
Pewarisan berbilang, sebaliknya, memperkenalkan kemungkinan pelaksanaan bercanggah. Tidak seperti antara muka, yang hanya mentakrifkan "apa", kelas mempunyai kedua-dua data dan tingkah laku. Membenarkan warisan berbilang boleh membawa kepada kekaburan dan kesukaran dalam menentukan pelaksanaan yang hendak digunakan. Oleh itu, Java mengehadkan berbilang warisan untuk mengelakkan isu yang berpotensi ini.
Atas ialah kandungan terperinci Mengapa Java Membenarkan Pelaksanaan Pelbagai Antara Muka tetapi Bukan Pewarisan Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!