title: Kotlin Abstract Protected Property
body: <p>If I have the following class hierarchy:    </p>
  
  <pre><code>abstract class Foo&lt;out T : Bar&gt;() {
    abstract protected val thing: T
  }
  
  class Baz : Foo&lt;BarImpl&gt; {
    override protected val thing: T = ...
  }
  </code></pre>
  
  <p>I get a warning on Baz::thing saying:</p>
  
  <blockquote>
    <p>Redundant visibility modifier</p>
  </blockquote>
  
  <p>Does that mean the compiler treats it as protected without you needing to specify that, or that it has to be public?</p>