Scala实战详解之第12讲 Scala中的继承:超类的构造、重写字段、重写方法代码实战

package com.dt.scalaInAction.demo_012

/**
 * Scala中的继承:超类的构造、重写字段、重写方法
 */
object OverrideOps {
    def main(args: Array[String]): Unit = {
        val worker = new Worker("Spark", 5, 100000);
        //row result : The primary constructor of Person
        //             The is the subClass of Person, primary constructor of Worker

        println("School:"+worker.school)  //row result : School:Spark
        println("Salary:"+worker.salary)  //row result : Salary:100000
        println(worker)                   //row result : I am a Worker 8 hour
    }
}

class Person(val name: String, var age: Int){
    println("The primary constructor of Person")
    val school = "BJU"
    def sleep = "8 hour"
    /*
     * 编码规则 复写方法需要标明override 关键字
     */
    override def toString = "I am a Person"
}

/**
 * Worker继承 Person
 * 子类在继承父类时 
 * 1.需要调用父类的主构造器 在子类声明时必须需要将父类的主构造器参数全部传递给子类的主构造器 否则编译报错
 * 2.编码规则 复写方法或者字段需要标明override 关键字
 */
class Worker(name: String, age: Int, val salary: Long) extends Person(name, age) {
    println("The is the subClass of Person, primary constructor of Worker")
    override val school = "Spark"   //复写父类的字段
    override def toString = "I am a Worker " + super.sleep  //在子类中调用父类的方法 需要使用super关键字
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值