加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

必须覆盖scala中的val变量

发布时间:2020-12-16 09:28:21 所属栏目:安全 来源:网络整理
导读:我在scala中遇到了一个奇怪的问题.以下是我的代码,类Employee扩展类Person 但是这段代码无法编译,我已经明确地将firstName和lastName定义为val变量.这是为什么 ?这是否意味着我必须覆盖基类中的val变量?目的是什么? class Person( firstName: String,last
我在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) {}

如果它们不是val并且您想要制作val,则不需要覆盖:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读