创建AbstractScala.scala

scala-基础之抽象类-05

package org.victor.scala.base

/**
  * Company: Huazhong University of science and technology
  * 华中科技大学电气学院聚变与等离子体研究所
  * Version: V1.0
  * Author: Victor
  * Contact: [email protected]  2018--2020
  * Software: IntelliJ IDEA
  * File: AbstractScala
  * Time: 2018/10/12 21:19
  * Desc:抽象类
  **/
class AbstractScala {

}

//创建抽象类 使用abstract关键字
abstract class APerson{
  //定义函数
  def speak

  //未被初始化的变量的使用
  val name:String
  val age:Int
}

class ITCoder extends APerson{
  //ITCoder类继承Person类并重写speak方法,重写超类的抽象方法时,不需要使用override关键字。
  //当然也可以在def前加override
  def speak ={
    println("I am a IT coder")
  }

  //抽象类中未被初始化的变量的使用,也可以不使用他们********************
  val name:String = "yexin"
  val age:Int = 24
}

object AbstractScala{
  def main(args: Array[String]): Unit = {
    val itcoder = new ITCoder
    itcoder.speak
  }
}

可以定义一个抽象类,抽象类可以定义一些方法,但是不需要实现它们。相反,继承抽象类的子类需要实现这些方法。抽象类是不能被实例化的。

在Scala中重写一个非抽象方法必须使用override修饰符。调用超类的方法就如Java一样,使用super关键字。

======================================================================

结果:

scala-基础之抽象类-05

 

相关文章: