Java中接口实现的继承

时间:2009-12-24 18:34:07

标签: java inheritance interface

我对Java中的接口有两个问题。 1)如果一个类碰巧实现了接口I的所有接口方法,而没有声明自己实现它们,它仍然可以用作I类变量的输入吗? 2)实现接口I的A类的子类是否继承了该接口的一致性,还是应该声明自己实现I?

3 个答案:

答案 0 :(得分:16)

  

如果一个类碰巧实现了所有   接口I的接口方法,   没有宣称自己   实施它们,它仍然可以   用作类型变量的输入   我?

没有。您所描述的内容更类似于duck typing

  

A类的子类是哪个   实现接口我继承了   符合该界面,或   是否应该宣称自己为   实施我?

假设你的意思是:

public class A implements I { /* ... */ }

public class B extends A { /* ... */ }

在这种情况下,B会实现I

答案 1 :(得分:2)

  1. 你的意思是“它能满足Liskov替代原则吗?”,答案是“不”。
  2. B类符合其父级,无需重新声明界面。
  3. 回答这些问题的最佳方法是尝试 - 尝试并查看。

答案 2 :(得分:0)

  1. 不,必须明确实现接口。
  2. 基类实现的接口通过扩展始终由派生类实现。