//Lección 3 Kotlin Intermedio: Class Inherentance
private fun classInheritance(){
val programmer = Programmer("Rene",36, "Kotlin")
programmer.work()
programmer.sayLanguage()
programmer.goToWork()
}
-----------
open class Person(name:String, age:Int) : Work() { //Propiedades nombre y edad //Open permite que la clase sea heredada
//Cualquier clase tiene una superclase común "Any"
open fun work(){
println("Esta persona está trabajando")
}
override fun goToWork() {
//TODO("Not yet implemented")
println("Esta persona va al trabajo")
}
}------------------class Programmer(name:String, age:Int, var language: String):Person(name, age) { //language paso de propiedad a variable
override fun work() { //Aqui se puede sobreescribir una funcion - Para especializarla
//super.work() //Hace referencia a la funcion original
println("Esta persona está programando")
}
fun sayLanguage(){
println("Este programador usa el lenguaje $language")
}
}----------------------abstract class Work { //Esto es una clase abstracta, sirve para definir solamente un comportamiento
abstract fun goToWork()
}