Properties Kotlin抽象保护属性
如果我有以下类层次结构:Properties Kotlin抽象保护属性,properties,abstract,kotlin,Properties,Abstract,Kotlin,如果我有以下类层次结构: abstract class Foo<out T : Bar>() { abstract protected val thing: T } class Baz : Foo<BarImpl> { override protected val thing: T = ... } 抽象类Foo(){ 抽象事物:T } 类别Baz:Foo{ 覆盖受保护的val对象:T=。。。 } 我在Baz::上收到一条警告说: 冗余可见性修改器 这是否意味
abstract class Foo<out T : Bar>() {
abstract protected val thing: T
}
class Baz : Foo<BarImpl> {
override protected val thing: T = ...
}
抽象类Foo(){
抽象事物:T
}
类别Baz:Foo{
覆盖受保护的val对象:T=。。。
}
我在Baz::上收到一条警告说:
冗余可见性修改器
这是否意味着编译器将其视为受保护的,而不需要您指定它,或者它必须是公共的?您将在Kotlin中收到IDE检查样式的警告,例如您不需要的额外分号、可以推断的额外泛型类型参数等。您的“冗余可见性”修改器沿相同的线 如果展开检查消息,您将看到全文: 此检查报告与图元的默认可见性匹配的可见性修饰符(对于大多数图元为公共,对于覆盖受保护成员的成员为受保护) 如果您不再需要查看什么,可以在IDE中关闭检查 关于这方面的更多注意事项: 重写祖先类的方法或成员时,您已经处于与声明时相同的访问级别。说
protected
就是说显而易见的(对于知道它是protected
的编译器来说)
如果需要,您可以再次重申访问修饰符。通过将其更改为public
,您可以进一步打开它。但您不能进一步限制它,例如转到private
(因为如果它是private,您如何覆盖它,该想法与覆盖
)不兼容,这将成为编译器错误