title: What is the difference between open class and abstract class?
body: <pre><code>abstract class ServerMock(param: String) {
     protected var someVar = params + &quot;123&quot;
  
     fun justMyVar() = someVar
  }
  </code></pre>
  <p>Usage example:</p>
  <pre><code>class BaseServer(param: String) : ServerMock(param) {
     val y = someVar
  }
  </code></pre>
  <p>Can this class be marked as <code>open</code> and not <code>abstract</code>?</p>
  <p>What is the difference between <code>open</code> and <code>abstract</code> class?</p>