1.1 抽象属性和抽象方法

1.1.1 基本语法

  1. - 抽象类:abstract class Person{ }
  2. - 抽象属性: val | var name:String
  3. - 抽象方法: def hello():String

1.1.2 继承&重写

  1. - 子类需要重写父类的抽象方法和抽象属性,否则子类也需要声明为抽象类
  2. - 重写抽象方法可以不加 override,重写非抽象方法需要加 override
  3. - 子类可以用super调用父类的方法
  4. - 子类对非抽象属性重写,父类非抽象属性只支持val类型

(因为var修饰的为可变变量,子类继承后可直接使用没必要重写)

1.1.3 匿名内部类

  1. abstract class Person4{
  2. var name:String
  3. def hello():Unit
  4. }
  5. object Test{
  6. def main(args:Array[String]):Unit={
  7. var p4 = new Person4 {
  8. override var name: String = "zs"
  9. override def hello(): Unit = {
  10. println(s"my name is $name , hello")
  11. }
  12. }
  13. //调用
  14. p4.hello()
  15. }
  16. }