java - 接口(interface)扩展了链表泛型上的接口(interface)

标签 java generics interface

我对链接列表中的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/

相关文章:

java - 通过比较索引找到集合中的最大长度

java - JMX MBeanInfo 和描述符

Java 泛型返回参数化为更具体的两种类型的泛型?

采用泛型类型参数的 Java 生成类

java - 在 Java 中,当一个接口(interface)扩展另一个接口(interface)时,为什么要在子接口(interface)中重新声明一个方法?

java - 为什么 getPackage().getSpecificationVersion() 在命令行中返回 null

java - 在本地主机中测试时如何模拟不同的位置?

Java 泛型类型扩展多个类

java - Java中向下转型类与向下转型接口(interface)的区别?

java - 是否需要接口(interface)方法的实现