我对链接列表中的Interface extends Interface
有点困惑。
可能一小段代码就能最好地解释它
接口(interface)A
public interface Fruit {
public String getColor();
}
接口(interface)B
public interface Fruit_alias extends Fruit {
}
橙级
public class Orange implements Fruit {
@Override
public String getColor() {
return "Orange";
}
public void pellOrange(){
}
}
主要
public class Main {
public static void main(String[] args){
LinkedList<Fruit_alias> f1=new LinkedList<Frucht_alias>();
f1.push(new Orange()); //gives me an Error
LinkedList<Fruit> f2=new LinkedList<Frucht>();
f2.push(new Orange()); // works fine
}
为什么我不能在这里使用Orange
?这对我来说感觉很奇怪,因为我希望接口(interface)的行为就像一个从更通用的对象继承的对象。
最佳答案
因为 Fruit_alias
不是 Orange 的父类(super class),但 Fruit
是。父类(super class)型可以在继承关系中引用子类型。将声明更改为:
public class Orange implements Fruit_alias {
@Override
public String getColor() {
return "Orange";
}
public void pellOrange(){
}
}
关于java - 接口(interface)扩展了链表泛型上的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410591/