c# - "Kelas boleh mewarisi berbilang antara muka secara langsung, tetapi hanya boleh mewarisi secara langsung satu kelas (termasuk kelas abstrak)." Bukankah ia tidak konsisten dengan pewarisan berbilang C++?
ringa_lee
2017-05-31 10:36:49
"Kelas boleh mewarisi berbilang antara muka secara langsung, tetapi hanya boleh mewarisi secara langsung satu kelas (termasuk kelas abstrak)." Bukankah ia tidak konsisten dengan berbilang warisan dalam C++?
Sepatutnya kelas mewarisi secara bijak daripada kelas (termasuk kelas abstrak), tetapi boleh melaksanakan berbilang antara muka
c++ pada asalnya adalah sistem Simular, jadi saya tidak akan bercakap mengenainyaWarisan ialah warisan langsung, dan antara muka ialah spesifikasi tertentu. Saya rasa lebih baik memahami cara ini
Pewarisan berbilang tidak bermakna
Warisan berbilang
C++ ialah warisan berbilang, lebih berkuasa, tetapi juga kurang mudah digunakan. Oleh itu, bahasa seperti Java tidak membenarkan pewarisan berbilang kelas asas Mereka hanya boleh mewarisi satu kelas asas dan melaksanakan berbilang antara muka. Saya tidak boleh mengatakan yang mana antara dua kaedah ini lebih baik, tetapi mereka masing-masing mempunyai kelebihan mereka sendiri. Saya masih ingat ia dikatakan dalam "CLR melalui C#" bahawa untuk mengelakkan berbilang warisan, C# hanya boleh mewarisi satu kelas, yang mengakibatkan banyak perangkap. Bagaimanapun, jika anda bukan pakar bahasa, biasanya terdapat penyelesaian kompromi, dan kami boleh menggunakannya