此声明的任何合适的实时示例......?
如果定义类型为接口的引用变量,则分配给它的任何对象都必须是实现接口的类的实例。
答案 0 :(得分:1)
interface
定义合同。合同定义了一组规则。 interface
通过声明方法来定义规则(它们的签名:输入参数,返回类型,名称,有时也可能是用于实现的java文档中编写的一些约束)。
声明某些interface
类型的引用变量只能引用类的对象,这些对象遵循由该特定接口定义的合同中设置的规则。
通过引用变量,我们可以调用对象上的方法。假设接口在其声明中设置了一些方法,然后我们有一个该接口类型的变量。现在应该能够通过该变量调用这些set方法。为此,必须仅引用实现该特定接口的类的对象。
通过实现接口,一个具体的类(非抽象)必然会提供由契约(接口)设置的规则(方法)的实现。
List x = new ArrayList();// valid
List y = new LinkedList();// valid
List z = new StringBuffer(); // invalid as StringBuffer does not implements List interface.
答案 1 :(得分:0)
public class StackOverflowQuestion {
private final List<Answer> answers = new ArrayList<>();
public void addAnswer(Answer answer) {
answers.add(answer);
}
}
此处,类ArrayList<T>
实现了接口List<T>
。