Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Properties Kotlin抽象保护属性_Properties_Abstract_Kotlin - Fatal编程技术网

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,您如何覆盖它,该想法与
覆盖
)不兼容,这将成为编译器错误