You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin编写类与构造函数时报Expecting member declaration错误如何解决

问题原因

你代码触发编译错误的核心问题是子类重写父类属性时缺少val关键字声明:
Kotlin语法要求,重写父类的val/var属性时,必须显式携带val/var关键字标识这是类成员属性,你写的override color = "White"、override brand = "Toyota"两行漏了val,编译器无法识别这是成员声明,因此抛出Expecting member declaration错误。

修正方案

直接给两个重写的属性加上val关键字即可正常编译,修正后的完整代码如下:

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

class Toyota() : Car() {
    // 补全val关键字
    override val color = "White"
    override val brand = "Toyota"
    
    override fun speed(){
        println("max speed is 360")
    }
}

fun main() {
    val car = Toyota()
    car.speed()
}

可选简化写法

也可以直接把重写的属性放到子类主构造函数中,省略类体内的重复声明,效果完全一致:

// 主构造函数内直接声明重写属性,代码更简洁
class Toyota(override val color: String = "White", override val brand: String = "Toyota") : Car()

内容的提问来源于stack exchange,提问作者Mahmoud Metawee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:06:02