java里的类:为什么只能继承一个类,而可以实现多个接口?
PHPz
PHPz 2017-04-17 17:30:02
0
4
618

1、java官方教程里有一段话,解释了原因:
One reason why the Java programming language does not permit you to extend more than one class is to avoid the issues of multiple inheritance of state, which is the ability to inherit fields from multiple classes. For example, suppose that you are able to define a new class that extends multiple classes. When you create an object by instantiating that class, that object will inherit fields from all of the class's superclasses. What if methods or constructors from different superclasses instantiate the same field? Which method or constructor will take precedence? Because interfaces do not contain fields, you do not have to worry about problems that result from multiple inheritance of state.

http://docs.oracle.com/javase/tutorial/java/IandI/multipleinheritance.html

2、问题是这段话我没看懂啊,我操。
真的认认真真看了,而且这个教程一节一节看下来,没看懂的地方实在不多啊——可是这么关键性的这一段,居然看不懂啊我操。

3、大伙都抡起袖子来解释一番呗~

PHPz
PHPz

学习是最好的投资!

membalas semua(4)
伊谢尔伦

Kelas A awam mempunyai int awam i=0, sesetengah() {i=1;}
Kelas B awam mempunyai int awam i=0, sesetengah() {i=2;}
Kelas C awam Terdapat int awam i=0, memanjangkan A,B
Sekarang C membuat instantiat c dan melaksanakan c.some(), i=?
Mewarisi daripada berbilang kelas tidak dibenarkan, hanya untuk mengelakkan pewarisan daripada berbilang kelas induk dan menetapkan pembolehubah ahli yang sama apabila memanggil kaedah atau pembina yang sama, yang akan menjadi kucar-kacir...

小葫芦

Beritahu saya tentang pemahaman saya, sila nyatakan jika saya salah
Sebab berbilang lanjutan tidak dibenarkan adalah untuk mengelakkan berbilang warisan Jika berbilang warisan dibenarkan, maka anda boleh mendapatkan pembolehubah berbilang penerima. Jika anda mentakrifkan kelas yang mewarisi berbilang kelas, apabila anda memperoleh tika melalui kaedah penciptaan, tika ini akan mendapat semua pembolehubah/kaedah yang dilanjutkan, iaitu, semua kelas induk jika berbilang kelas induk mempunyai pembolehubah yang sama, maka Menyebabkan kekeliruan. Jika antara muka tidak mempunyai pembolehubah, tiada percanggahan di atas.

迷茫

Selain yang dinyatakan di atas, pusaka tunggal juga dapat mengelakkan masalah berlian yang disebabkan oleh pusaka berganda.

Peter_Zhu

Saya rasa pewarisan harus mencerminkan ciri (sifat) dan tingkah laku (kaedah) sesuatu objek.
Fikirkan dari segi pengaturcaraan berorientasikan objek:
Kelas induk mengumpul semua ciri dan tingkah laku biasa kelas kanak-kanak.
Subkelas mempunyai semua ciri dan gelagat "awam" kelas induk.
Ini mencerminkan struktur hierarki antara kelas, dan juga menyelesaikan peralihan daripada menerangkan sistem kepada menggunakan kod untuk menerangkan sistem.
Perkara di atas adalah semata-mata untuk pemahaman saya. Jika ada yang mengelirukan, sila terima nasihat.
Rujukan: Pengaturcaraan Java Edisi Ke-4

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan