Soy novato en kotlin, intento aplicar la lección sobre oop en kotlin , pero obtuve varias "esperando declaración de miembro"
No sé dónde está el error en este código.
open class Car( open val color:String?=null, open val brand:String?=null) { open fun speed(){ println("max speed is 220") } } class Toyota() : Car() { override color = "White" override brand = "Toyota" override fun speed(){ println("max speed is 360") } } fun main() { var car:Toyota = Toyota() car.speed() }Le falta una palabra clave val en ambos parámetros en la clase Toyota :
class Toyota() : Car() { override val color = "White" override val brand = "Toyota" override fun speed(){ println("max speed is 360") } } O puede hacerlo aún mejor usando Car constructor directamente:
class Toyota : Car(color = "White", brand = "Toyota") { override fun speed(){ println("max speed is 360") } } Con este enfoque, incluso puede hacer que Car sea más simple (no es necesario open palabra clave en sus propiedades):
open class Car(val color : String? = null, val brand : String? = null) { open fun speed(){ println("max speed is 220") } }Puede anular el color y la marca en el constructor de la subclase:
class Toyota(override val color: String = "White", override val brand: String = "White") : Car() { override fun speed() { println("max speed is 360") } }