通用构造函数调用继承

时间:2017-03-21 16:33:45

标签: java generics inheritance

我有以下情况:

public abstract class A{}

public class B extends A{}


public abstract class C<T extends A>{
    private T t;
    public C(){}
    public C(T t){
        this.t = t;
        }
}

public class D<B> extends C<A>{
     private B b;
     public D(B b){
        super(b);
        this.b=b;
       }
}

但是我在D类的构造函数中遇到错误。我缺少什么? Java 1.7

1 个答案:

答案 0 :(得分:1)

在您提供的代码中,BD的通用参数)不必扩展A,因此来自C的泛型参数的界限不是满意。

D<B> extends C更改为D extends C<B>