【发布时间】:2020-10-31 09:03:05
【问题描述】:
我正在尝试创建一个父类型 (IDataProvider) 和一个子类型 (ILocalDataProvider),然后在一个类中,指定子类型来代替父类型。这就是我的意思:
abstract class IDataProvider {
ValueType get<ValueType>(String keyToRead);
}
abstract class ILocalDataProvider extends IDataProvider {
bool isKeyExistent(String key);
}
abstract class IDataSource {
IDataProvider dataProvider;
}
class LocalDataSource implements IDataSource {
LocalDataSource({@required this.dataProvider});
@override
ILocalDataProvider dataProvider; //*************** ERROR ON THIS LINE **********//
}
我收到此错误:
'LocalDataSource.dataProvider=' ('void Function(ILocalDataProvider)') 不是 'IDataSource.dataProvider=' 的有效覆盖('void 函数(IDataProvider)')。
我以为既然ILocalDataProvider是IDataProvider的子类型,那它就会被识别为IDataProvider??我做错了什么?
【问题讨论】: