创建AbstractScala.scala
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关键字。
======================================================================
结果: