一:定义抽象类 定义抽象属性:var|val 属性名:类型 一个属性没有初始化,没有值 定义抽象方法:def 方法名():String 只声明没有实现方法。 二:继承抽象类 子类继承了抽象类,它就必须去实现所有抽象属性和抽象方法
package level02
/**
* abstract:抽象
* 抽象类。
* 抽象类有:
* 1.有关键字 abstract
* 2.有抽象成员。只有属性名,没有具体的值 没有 等号 。
* 3.子类要实现所有的抽象成员
* 如果要重写父类具体成员,使用override
* 3.不能被new
* 4.作用:给其他的子类立一个标准
*/
object class017 {
//抽象类
abstract class DreamJob() {
var money: Double //只有属性名,没有具体的值
var vacation: Int
var boss: String
var name: String = "理想工作"
//抽象方法:没有等号,就是一个抽象的方法,它需要在子类中去实现
def addMoney(): Unit
//具体方法
def getMoney(): Unit = {
println(s"发工资:${money}元")
}
}
//子类:具体类
class PE extends DreamJob {
var money: Double = 14500
var vacation: Int = 4
var boss: String = "无人"
def addMoney(): Unit = {
money *= 1.1
}
override def getMoney(): Unit = {
println(s"上银行卡:${money}元")
}
}
def main(args: Array[String]): Unit = {
//new DreamJob()//报错
val pe1 = new PE()
pe1.addMoney()
pe1.getMoney
}
}