考虑两类:
abstract class ParentRepository {}
class ChildRepository : ParentRepository {}
abstract class ParentClass {
protected abstract var repository: ParentRepository
}
class ChildClass : ParentClass {
override var repository: ChildRepository
}
最后一部分不起作用:
override var repository: ChildRepository
它会抱怨:
Type of 'repository' doesn't match the type of the overridden var-property 'protected abstract var repository: ParentRepository
我理解问题所在,但我不明白为什么它不起作用– ChildRepository是ParentRepository的实例,这是我习惯于Java的常识。
您必须声明repository
为val。您仍然可以将其覆盖为var:
protected abstract val repository: ParentRepository
override var repository: ChildRepository
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句