title: what is `open` keyword for fields in Kotlin?
body: <p>In Kotlin <code>open</code> is the same as not <code>final</code> in Java for classes and methods.</p>
  
  <p>What does <code>open</code> give me in the following class for the field marked as <code>open</code>?</p>
  
  <pre><code>@MappedSuperclass
  abstract class BaseEntity() : Persistable&lt;Long&gt; {
       open var id: Long? = null
  }
  </code></pre>
  
  <p><strong>updated</strong>
  this is not duplicate of <a href="https://stackoverflow.com/questions/49024200/what-is-the-difference-between-open-and-public-in-kotlin">What is the difference between &#39;open&#39; and &#39;public&#39; in Kotlin?</a></p>
  
  <p>I am interested in <code>open</code> keyword for properties </p>
  
  <p><strong>updated</strong></p>
  
  <p><code>open</code> class can be inherited.<br>
  <code>open</code> fun can be overridden<br>
  <code>val</code> property is <code>final</code> field in java</p>
  
  <p>what about <code>open</code> property?</p>