创建类和构造函数时需要成员声明

Mah*_*wee 2 oop constructor var kotlin

我是 kotlin 的新手,我尝试在kotlin上应用有关 oop 的课程,但我收到多个“期待成员声明”

在此输入图像描述

我不知道这段代码哪里有错误

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()
    
   
}
Run Code Online (Sandbox Code Playgroud)

Joã*_*ias 5

val您在类中的两个参数中都缺少关键字Toyota

class Toyota() : Car() {
    override val color = "White"
    override val brand = "Toyota"

    override fun speed(){
        println("max speed is 360")
    }
}
Run Code Online (Sandbox Code Playgroud)

或者你可以直接使用构造函数来做得更好Car

class Toyota : Car(color = "White", brand = "Toyota") {
    override fun speed(){
        println("max speed is 360")
    }
}
Run Code Online (Sandbox Code Playgroud)

通过这种方法,您甚至可以变得Car更简单(不需要open在属性上使用关键字):

open class Car(val color : String? = null, val brand : String? = null) {
    open fun speed(){
        println("max speed is 220")
    }
}
Run Code Online (Sandbox Code Playgroud)