Interfaces
Kotlin interfaces are similar to Java 8 interfaces and different to interfaces in previous version Java. An interface is defined using the interface keyword. Let's define an EmailProvider interface:
    interface EmailProvider { 
        fun validateEmail() 
   } To implement the preceding interface in Kotlin, use the same syntax as for extending classes--a single colon character (:). There is no implements keyword, in contrast to Java:
    class User:EmailProvider { 
        override fun validateEmail() { 
            //email validation 
        } 
    } The question of how to extend a class may arise and implement an interface at the same time. Simply place the class name after the colon, and use a comma to add one or more interfaces. It's not required to place the superclass in the first position, although it's considered good practice:
    open class Person {
 
        interface EmailProvider { 
            fun validateEmail() 
        } 
 
        class User: Person(), EmailProvider... 
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                