首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java接口特性

Java接口特性
EN

Stack Overflow用户
提问于 2011-04-17 18:58:06
回答 2查看 296关注 0票数 1

假设class2扩展了另一个class1,并且class2需要实现一个特定的接口。class1必须实现与class2应该实现的接口吗?

示例:

代码语言:javascript
复制
public class Mosquito extends Insect implements FlyingThings {
}

昆虫是否必须实现FlyingThings?

  • Or,子类“蚊子”能否实现超类“昆虫”没有实现的类?

从逻辑上讲,我认为,在给定的例子中,答案是否定的,因为昆虫不一定会飞。当然,在这方面,这个例子可能只是误导。

不管怎么说,我要感谢你提前给出的答案。

EN

回答 2

Stack Overflow用户

发布于 2011-04-17 19:01:12

您的推理是正确的: Class1不需要为Class2实现接口。

Class2在继承Class1的功能和成员时,可以自由添加或可能通过重写更改任何适当的功能(通过接口或其他方式)。

票数 2
EN

Stack Overflow用户

发布于 2011-04-17 19:08:20

蚂蚁是昆虫,它们大多不会飞。所以蚂蚁飞起来是不合适的。

此外,考虑这个问题:

这是诱人的

代码语言:javascript
复制
class FlyingInsect extends Insect

但是,当你去做蚂蚁皇后的时候,你有这样的感觉:

代码语言:javascript
复制
class Ant extends Insect // ants don't fly

class QueenAnt extends Ant // wait she needs to fly though!
class QueenAnt extends FlyingInsect // oh drats, but now she isn't an ant!

这使得FlyingThing成为一个很好的接口选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5695695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档