Abstract classes
The abstract keyword in Kotlin defines a class or a member whose implementation is missing or incomplete. Abstract classes can be extended but cannot be instantiated. Abstract classes do not have to have abstract members, but an abstract member has to be defined inside an abstract class. Let's define an abstract class that has two abstract members, a property and a function:
abstract class BaseUser {
abstract val name: String
abstract fun login()
fun logout(){
println("Logging out")
}
}You can see that we also have one non-abstract function. Abstract classes can have state and non-abstract members. You can also see that an abstract function doesn't have an implementation, it only has a signature. The same for the abstract property, it doesn't return any value. If you had the abstract modifier on a member that has an implementation, you'd get a compiler error. This BaseUser class wouldn't compile:
abstract class BaseUser {
//compiler error
abstract val name: String =...