1.1 抽象属性和抽象方法
1.1.1 基本语法
- 抽象类:abstract class Person{ }
- 抽象属性: val | var name:String
- 抽象方法: def hello():String
1.1.2 继承&重写
- 子类需要重写父类的抽象方法和抽象属性,否则子类也需要声明为抽象类
- 重写抽象方法可以不加 override,重写非抽象方法需要加 override
- 子类可以用super调用父类的方法
- 子类对非抽象属性重写,父类非抽象属性只支持val类型
(因为var修饰的为可变变量,子类继承后可直接使用没必要重写)
1.1.3 匿名内部类
abstract class Person4{
var name:String
def hello():Unit
}
object Test{
def main(args:Array[String]):Unit={
var p4 = new Person4 {
override var name: String = "zs"
override def hello(): Unit = {
println(s"my name is $name , hello")
}
}
//调用
p4.hello()
}
}