Adding the abstract keyword in front of the class definition will mark the class as abstract. An abstract class is a partially defined class; properties and methods that have no implementation must be implemented in a derived class unless the derived class is meant to be an abstract class as well. Here is how you would define an abstract class in Kotlin:
abstract class A { abstract fun doSomething() }
Unlike interfaces, you have to mark the function as abstract if you don't provide a body definition.
You cannot create an instance of an abstract class. The role of such a class is to provide a common set of methods that multiple derived classes share. The best example of such a case is the InputStream class. This will be very familiar to a developer who has already worked with Java. The JDK Documentation says: