gpt4 book ai didi

scala - 必须覆盖 scala 中的 val 变量

转载 作者:行者123 更新时间:2023-12-02 16:22:34 24 4
gpt4 key购买 nike

我在 scala 中遇到了一个奇怪的问题。以下是我的代码,Employee类扩展了Person类

但是这段代码无法编译,我已经显式定义了firstName和lastName作为val变量。这是为什么 ?这是否意味着我必须重写基类中的 val 变量?目的是什么?

class Person( firstName: String,  lastName: String) {

}

class Employee(override val firstName: String, override val lastName: String, val depart: String)
extends Person(firstName,lastName){

}

最佳答案

构造函数的输入参数不是 val,除非您声明它们是。如果它们已经存在,为什么要覆盖它们?

class Person(val firstName: String, val lastName: String) {}
class Strange(
override val firstName: String, override val lastName: String
) extends Person("John","Doe") {}
class Employee(fn: String, ln: String, val depart: String) extends Person(fn,ln) {}

如果它们不是 vals 并且您想创建 vals,则无需覆盖:

class Person(firstName: String, lastName: String) {}
class Employee(
val firstName: String, val lastName: String, val depart: String
) extends Person(firstName,lastName) {}

关于scala - 必须覆盖 scala 中的 val 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com