对Java继承的困惑

nirehs 2004-08-04 02:07:25
class A{
int a;
}
class B{
int b;
}
在C++里要想得到一个类C,有a,b,可以这样
class C :A,B{
}
在Java里如何实现呢,?
...全文
341 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
samuellyw 2004-08-04
  • 打赏
  • 举报
回复
这样不行,B和A已知了,对不起,欠考虑~当我没说过。
samuellyw 2004-08-04
  • 打赏
  • 举报
回复
class b extends a{};
class c extends b{};
不知道这样是否Ok??个人觉得这样继承扩充特性很方便。纯属新手意见,呵呵。
lookio 2004-08-04
  • 打赏
  • 举报
回复
class D extends A{
class C extends B{
System.out.println(a);
System.out.println(a);
}
}

学习!
hvbird 2004-08-04
  • 打赏
  • 举报
回复
上帝打开一扇门的时候,也会关上一扇窗,呵呵!
ukulele8656 2004-08-04
  • 打赏
  • 举报
回复
不支持多重继承很合理,一个儿子只能有一个爸爸,大多数人都是这样的吧。
上面的程序是把c作成d的inner class,c和d分别继承b和a,这样能达到你的目的了啊
ZHANG9652 2004-08-04
  • 打赏
  • 举报
回复
不至于这么大火吧,呵呵,
nirehs 2004-08-04
  • 打赏
  • 举报
回复
class D extends A{
class C extends B{
System.out.println(a);
System.out.println(a);
}
}
能解释一下吗?
dinosaurain 2004-08-04
  • 打赏
  • 举报
回复
用不了多重继承就用不了吧
楼主至于这么大的火气吗
那个语言没有缺点啊

再说了
在不同的人看来 缺点有时未必是缺点 优点有时也未必是优点

Java里的System.out.print还用不了 %d 之类的格式控制输出呢

那有能怎么样?

不还是一样的用?
系统没有带的东西就自己想办法实现啊

就像人一样 谁生下来也不是天才的料
不还是有人通过其它方法实现了这个结果吗

真是费解
ynsfsw 2004-08-04
  • 打赏
  • 举报
回复
class D extends A{
class C extends B{
System.out.println(a);
System.out.println(a);
}
}
ynsfsw 2004-08-04
  • 打赏
  • 举报
回复
用内部类啊!
nirehs 2004-08-04
  • 打赏
  • 举报
回复
听了半天,我也听明白了,从前看书还以为没看明白呢,原来就是这样。。。
Java根本就实现不了多继承,还什么美其明曰用接口实现多继承,
“java不支持多重继承,java中是使用接口来实现多重继承的”,我真的希望大家以后不要再去学这个舌,让人骗了还帮我数钱。。。
当然,Java还是要学,用的,虽然它有很多不足和另人费解的地方。。。
多谢大家指教....
aggie 2004-08-04
  • 打赏
  • 举报
回复
sorry, java不能实现你这个要求,除非你改类a或类b的设计
nirehs 2004-08-04
  • 打赏
  • 举报
回复
根据oo严格定义,继承是“is a”的关系,
那OO就一定好吗,OO就没有弊端,好像总是听人说理论要符合客观世界的要求,OO没准再过些年就又被否了,我们看问题不要掺杂太多的历史局限,好吗?

nirehs 2004-08-04
  • 打赏
  • 举报
回复
瑕不掩玉?
我却不这样看,我们Java是在C++上刨了个窟窿,塞上了泥巴,还以为是画龙点睛。

又说没用的了,说说实际的吧
知道这里有很多高人,哪位高人能帮我解除这个困惑呢,感激不尽。。。
qqbz 2004-08-04
  • 打赏
  • 举报
回复
那你干吗还用java啊?不要说是迫不得已,公司要求的的哦。如果你看不上java,就说服其他人不要改代码。
我对语言没有偏见,也不是说java一定如何,c++一定如何。一个语言总有它的好处,否则就不会有那么强的生命力,目前实际有很多oo的开发语言,可是现在的事实是java和C++相提并论,成为oo的教学语言。
我倒认为:根据oo严格定义,继承是“is a”的关系,一个类既是这个类,又是那个类,显然是不合理的。
flashstar 2004-08-04
  • 打赏
  • 举报
回复
如果设计java的人我们肯定他是个“白吃”的话,那我不知道该叫楼主什么了
瑕不掩玉都不知道吗?
nirehs 2004-08-04
  • 打赏
  • 举报
回复
class C implements A, B
如果这样A,B就不能是类了,一定要是一个接口,可我现在发现的是两个有用的A,B两个类啊,
而且Java里定义接口只能声明类型,不能声明方法体,方法体只能在实现的类里具体定义,这还有什么用呢,就像刚才说的,继承就是为了代码复用,如果一个就要自己去在类里写代码,还有意义吗?这也是我感觉Java里非常不合理的地方,可能是我比较不愚鲁,找便了书店里所有的书,都是这么说,看是看明白了,就是不知道有什么用,越看Java越觉得设计它的是个白吃。真的,就是个白吃。。。
nirehs 2004-08-04
  • 打赏
  • 举报
回复
sorry,对事不对人的,我一直就不是很欣赏Java,感觉就像某个小公司开发的很拙劣的不成开产品,有好多地方不知道它为什么要那么实现,也许是某个什么太斗的误导,人,大多都是人云亦云的,有自己看法的不多,
也许若干年后,会有人说在2000-2010年间,所有软件人员都掉入的一个骗局。
qqbz 2004-08-04
  • 打赏
  • 举报
回复
或class C implements A, B
qqbz 2004-08-04
  • 打赏
  • 举报
回复
楼主,不能客气点啊?
那需要有一个是接口,或两个都是接口:
class C extends A implements B
加载更多回复(8)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧