Clase abstracta: una casa a medio construir: algunas paredes existen con código real, algunas habitaciones solo están marcadas como abstractas hasta que una subclase las termina. Interfaz: una lista de verificación de comportamientos; todavía no hay campos a menos que haga trampa con propiedades en interfaces en objetivos JVM más nuevos. En Kotlin, a menudo se apoyará en interfaces + clases de datos + tipos sellados; Las clases abstractas aparecen cuando realmente desea una lógica con estado compartida en una base.
Bosquejo de clase abstracto