public abstract class Abc<T> {
public abstract void f1(T a);
}
abstract class Def<T> extends Abc {
@Override
public void f1(T a) {
System.out.print("f");
}
}
这会出现以下错误: “方法不会覆盖或实现超类型的方法”
这里有什么问题?
答案 0 :(得分:8)
您的类定义需要表明您正在扩展父类。
abstract class Def<T> extends Abc<T>
否则,编译器或多或少会假定您正在扩展Abc<object>
,因此包含T
参数的方法签名与父类的方法签名不匹配(因为它使用的是不同的T
参数)。