每个用JAVA的人都知道java不支持多继承,但为什么呢?无论从抽象还是多态等层面思考,感觉都是行得通的,那么为什么不支持呢?
文章插图
很多人都是分析一旦一个类继承了多个父类,那么父类中如果有相同的成员变量和方法,就不好处理,如下图,这就是Diamond问题
GrandParent f()//Parent1 f()Parent2 f()//Son f()
那么此时子类如果我们只引用 f(),编译器将无法决定它应该调用哪个 f()方法,但此说明不足以让人信服,比如可以强制要求子类必须覆写f()方法 。Java之父,James Gosling在1995年的一份白皮书中给出了关于为什么不支持多继承
“
推荐阅读
- 为什么历史书上说秦始皇是暴君 历史上的秦始皇真的是个暴君吗
- 乾隆十公主为什么那么得宠 皇上喜欢萩祺庶妃吗
- 宋真宗时,西京洛阳 北宋为什么不建都洛阳
- 蒙古骑兵有多厉害 蒙古人为什么善骑马
- 古代死囚临刑前一天 古代行刑为什么要在午时三刻
- 为什么没人写方腊起义 方腊宋江起义
- 贪小失大类似的成语 因小失大的历史典故成语
- 荆轲为什么会为燕太子丹去行刺秦王 燕丹和荆轲
- 古代侍寝为什么要用被子包起来 清朝皇后也是卷被子进吗
- 郭襄开创峨眉派 郭襄为什么创立峨眉派