Java中接口实现的inheritance

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

如果一个类碰巧实现了接口I的所有接口方法,而没有声明自己实现它们,它仍然可以用作I类变量的输入吗?

不,你所描述的更类似于鸭子打字 。

实现接口I的类A的子类是否inheritance了与该接口的一致性,还是应该将其自身声明为实现I?

假设你的意思是:

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

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

  1. 你的意思是“它能满足Liskov替代原则吗?”,答案是“不”。
  2. B类符合其父级,无需重新声明接口。

回答这些问题的最佳方法是尝试 – 尝试并查看。

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