你这个算是一种观点,支持的人也不少,有道理。
我的看法是角度不同,结果就不同。
避免多重继承的代价,是引入类和接口两种东西,类结构复杂化;
反过来,支持多继承,就不需要类和接口两种东西,但就要妥善解决虚继承问题。
Java 8、C# 8.0 先后在接口中支持默认方法,这就是往多继承又迈进了一步。
目前与C++的不同仅仅在于接口里不支持默认的成员变量。
有很多网上的文章上来就说多重继承如何难以定义和处理,这本身就有先入为主的
洗脑嫌疑。从建模看,如果多重继承与实际模型更接近,就意味着使用类和接口的
复杂性的代价更高。
当然,Java/C#作为简化版的C++,从对初学者友好的角度,让类的结构简单化本身
没有问题,只是把确实需要的场景的负担转嫁出去了。
另外还有观点认为继承本身就多余,不如使用组合,从他的角度出发也有道理,
反正可以解决问题。
我的观点倒是C++固守老一套,对网络、反射、数据库的支持不足,使得它逐步脱离
时代,语言本身的特点应该不是主要问题。
【 在 iFighter (0_Oo) 的大作中提到: 】
: 多重继承 绝对是祸害源泉...
--
修改:exbluesea FROM 123.118.213.*
FROM 123.118.213.*