社区
Java SE
帖子详情
关于继承的问题
dolphinxl
2004-05-02 04:31:21
很多面向对象语言(例如Java)不能全部支持所有类型的继承方式,为什么?换句话说,若想全部支持这三种类型的继承,难在哪里?
...全文
57
4
打赏
收藏
关于继承的问题
很多面向对象语言(例如Java)不能全部支持所有类型的继承方式,为什么?换句话说,若想全部支持这三种类型的继承,难在哪里?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
muymuy
2004-05-04
打赏
举报
回复
要支持这三种继承并不困难,只是java(c#也是)不愿支持,应该说是特意不支持多继承和虚继承。多继承容易使类的层次结构变得复杂,容易引起错误,一般很少用,如果你对多继承的细节不是很了解,最好不要用。虚继承实际上是多继承中的一种特例,同样也有多继承中的种种问题。
java和c#都是为了避免多继承带来的问题,特意设计成单根继承,这样做一方面便于使用,另一方面从语言层次上避免了一些问题。
dolphinxl
2004-05-03
打赏
举报
回复
“三种类型的继承”是指:单继承,多继承,重复继承(也就是C++中的虚继承)
sunzq13
2004-05-02
打赏
举报
回复
单继承当然没问题了
多继承可以用实现不同接口的方式实现啊。
muymuy
2004-05-02
打赏
举报
回复
不太明白你的意思。
“三种类型的继承”是指:单继承,多继承,虚拟继承?
C#自定义控件库
C#自定义控件库
C++:菱形
继承
问题
在C++中,菱形
继承
是指一个派生类同时
继承
自两个直接或间接基类,而这两个基类又
继承
自同一个基类。这种
继承
结构形成了一个菱形的图形,因此得名菱形
继承
。菱形
继承
可能会引起一些
问题
,其中最主要的
问题
是数据冗余。由于派生类
继承
了两个基类,这两个基类都可能包含相同的数据成员,导致派生类中存在两份相同的数据,造成数据冗余和浪费内存。单
继承
:一个子类只有一个直接父类时称这个
继承
关系为单
继承
多
继承
:一个子类有两个或以上直接父类时称这个
继承
关系为多
继承
菱形
继承
:菱形
继承
是多
继承
的一种特殊情况。
C++
继承
的
问题
: 菱形
继承
(虚拟
继承
)
上一次我们学习了
继承
相关的知识, 这次我们来看看
继承
的
问题
— 菱形
继承
. 文章目录一. 什么是菱形
继承
二. 菱形
继承
的
问题
三. 虚拟
继承
一. 什么是菱形
继承
一图流解释 二. 菱形
继承
的
问题
就拿上面的经典菱形
继承
来说, 从下面的对象成员模型构造,可以看出菱形
继承
有数据冗余和二义性的
问题
。在D类的对象中A类成员会有两份。 . 下面给出菱形
继承
的代码 : //菱形
继承
class AA { public: int _aa; }; class BB : public AA { //AA::_.
一文学会Java 8 菱形
继承
问题
在Java 8 中,接口可以使用default关键字添加方法的默认实现,主要目的是为了解决依赖升级引起不兼容的
问题
。 当接口中某个新增的方法子类中没有去实现时,就会走接口中的默认实现。 而Java一直是单
继承
,Java 8 之前不会出现类似C++中的多
继承
引发的菱形
继承
问题
。 Java 8 接口的默认实现同时也带来菱形
继承
问题
。 假设GrandFather接口如下: public interface GrandFather { default void say(){ System.
什么是“钻石
继承
问题
”
钻石
继承
问题
(Diamond Inheritance Problem) 主要是指在多重
继承
中,由于
继承
关系的复杂性,子类可能通过多个路径
继承
到相同的基类,从而导致成员的多份副本或者方法调用的二义性。
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章