Scala中超类的构造

  1. 类有一个主构造器和任意数量的辅助构造器,而每个辅助构造器都必须调用主构造器(也可以是间接调用)
  2. 只有主类的构造器才可以调用父类的构造器,辅助构造器不能直接调用父类的构造器,在Scala的构造器中,你不能调用super(params)

Javajvm动态绑定机制小结

  1. 如果调用的是方法,则jvm机,会将该方法和对象的内存地址绑定
  2. 如果调用的是一个属性,则没有动态绑定机制,在哪里调用,就返回对应值

覆写字段

  1. def只能重写另一个def(即:方法只能重写另一个方法)
  2. val只能重写另一个val属性或重写不带参数的def方法

注意事项和细节

  1. var只能重写另一个抽象的var属性
  2. 抽象属性:声明未初始化的变量就是抽象的属性,抽象属性在抽象类

var重写抽象的var属性小结

  1. 一个属性没有初始化,那么这个属性就是抽象属性
  2. 抽象属性在编译成字节码文件时,属性并不会声明,但是会自动生成抽象方法,所以类必须声明为抽象类
  3. 如果是覆写一个父类的抽象属性,那么override关键字可省略 [原因:父类的抽象属性,
    生成的是抽象方法,因此就不涉及到方法重写的概念,因此override可省略]