title: How to Differentiate between kotlin's class inheritence(extends in java) and interface implementation(implements in ) here kotlin uses ( : ) for both?
body: <p>As I'm working in the middle of some kotlin project I got a confusion like whether a child class implements another parent class or else implementing an interface? like I am using some interfaces and classes from a jar which I am not aware a lot about it could someone explain to me a way to solve this since I am new to kotlin.<br>
  For Example:<br>
  a class definition  </p>
  
  <pre><code>abstract class Employee (val firstName: String, val lastName: String) {
      abstract fun earnings(): Double
  }
  </code></pre>
  
  <p>which is extended by some other class  </p>
  
  <pre><code>abstract class Employee (val firstName: String, val lastName: String) {
      // ... 
  
      fun fullName(): String {
          return lastName + " " + firstName;
      }
  }
  </code></pre>
  
  <p>Similarly an Interface  </p>
  
  <pre><code>class Result
  class Student 
  
  interface StudentRepository {
      fun getById(id: Long): Student
      fun getResultsById(id: Long): List&lt;Result&gt;
  }
  </code></pre>
  
  <p>Interface implementation  </p>
  
  <pre><code>class StudentLocalDataSource : StudentRepository {
      override fun getResults(id: Long): List&lt;Result&gt; {
         // do implementation
      }
  
      override fun getById(id: Long): Student {
          // do implementation
      }
  }
  </code></pre>