锁定老帖子 主题:子类父类实现同一接口
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-12
allskylove 写道 光从上面的代码中看不出来什么? 因为我看不到 B类中的实现 和C类中的实现
自己试一下,并不是楼上说的没有用, 比如说:使用了静态变量,私有变量,公共变量,静态方法,私有方法,等等,; 另外 类继承 和实现 是两个层次的东西,没有办法比较, 属于语言设计的问题。 接口比类更抽象,更高级。 有鬼的区别~ |
|
返回顶楼 | |
发表时间:2010-10-12
如果子类跟父类实现一样,那么一点用没有;如果子类实现不同于父类实现,则子类实现会覆盖父类实现
|
|
返回顶楼 | |
发表时间:2010-10-12
vivus 写道 子类父类实现同一接口有什么作用?
简单的说,下面这样的代码: B implements A C extends B implements A 红色的代码有什么用? 除了让你在C的声明区域“显式地”知道它实现了A以外,毫无作用 |
|
返回顶楼 | |
发表时间:2010-10-12
vivus 写道 子类父类实现同一接口有什么作用?
简单的说,下面这样的代码: B implements A C extends B implements A 红色的代码有什么用? 我的理解,欢迎讨论 并没有子类父类实现同一接口的概念。 父类实现接口A,子类默认已经拥有了父类实现接口A的属性,子类再使用implements A已无意义 这时的子类只能重写父类实现A的方法。 |
|
返回顶楼 | |
发表时间:2010-10-12
最后修改:2010-10-12
感觉没有用, 或许对一些声明作用的接口有用,如Serializable, Cloneable等等
比如 public class A implements Serializable { } public class B extends A { } public class C extends A implements Serializable { } B类是不是也是能序列化? 谁做下测试 |
|
返回顶楼 | |
发表时间:2010-10-12
最后修改:2010-10-12
两个功能
第一误导,如果仅看C类 还以为B类没有实现A呢 第二,帮编译器干点活,或者给编译器找点活干! |
|
返回顶楼 | |
发表时间:2010-10-12
lewisw 写道 感觉没有用, 或许对一些声明作用的接口有用,如Serializable, Cloneable等等
比如 public class A implements Serializable { } public class B extends A { } public class C extends A implements Serializable { } B类是不是也是能序列化? 谁做下测试 空接口只是没有annotation时代的一个解决方案,仅仅是一个标记。 |
|
返回顶楼 | |
发表时间:2010-10-12
icanfly 写道 那C中应该会覆盖B中实现的A方法
你太有才了,连这都知道。。。 |
|
返回顶楼 | |
发表时间:2010-10-12
貌似没什么用
|
|
返回顶楼 | |
发表时间:2010-10-12
用还是有用的~
|
|
返回顶楼 | |