【发布时间】:2020-06-03 06:17:37
【问题描述】:
我有这种情况,我从一个超类扩展,使用泛型键入方法,如下所示:
型号
abstract class SuperClass {
//.....
}
class SubClass extends SuperClass {
int a;
int b;
String c;
//....
}
控制器
abstract class A {
T getDoc<T extends SuperClass>(T doc);
}
class B extends A {
T getDoc<T extends SubClass>(T doc) { //<================ Error
//....
}
}
基本上B 类只会处理SubClass 模型和任何扩展它的类。扩展 SuperClass 是不够的。这是一种强制使用类型的方法。我可以添加一个辅助函数来检查 B (doc is SubClass) 类中每个方法的类型,但似乎有很多重复。
但是,当覆盖 B 类中的方法 getDoc 时,上述架构会失败,尽管 SubClass 是 SuperClass,但它不是有效的覆盖。我怎样才能实现这样的目标?或者有更好的方法吗?感谢任何指针:)
【问题讨论】:
标签: oop generics dart polymorphism