private fun interfaces(){
//val gamer : Game //No podemos instanciarla ->() porque no posee estado y no puede utilizarse por si sola
val gamer = Person("Rene",36)
gamer.play()
gamer.stream()
}
----------------------
interface Game { //Una interface no puede poseer estado -> () <-No puede poseer un constructor
//En clase abstracta si se puede agregar una propiedad en su constructor -> (myGame:String)
val game: String //Se puede definir propiedades
fun play() //No hae falta que se diga que es abstracta ya que es una interface
fun stream(){ //Con esto stream tiene un corportamiento por defecto pero puede ser reemplazado
println("Estoy haciendo stream de mi juego $game") //Le doy un comportamiento a la interface
}
}
--------------------
open class Person(name:String, age:Int) : Work(), Game { //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")
}
//override val game: String
// get() = "FIFA"
override val game: String = "Fifa" //Otra forma de dar valor a game
override fun play() {
println("Esta persona está jugando $game")
}
}