概念

  • java的继承:
    • 类单继承
  • scala的继承:
    • 类也是单继承
    • scala没有接口, 但是提供了更加强大的 trail(特质)
    • 接口 多实现

继承案例

继承是extends

复写父类的方法是override关键字

  1. class A(val a: Int) {
  2. def this() {
  3. this(10)
  4. }
  5. println("A 主构造内的代码")
  6. def foo() = {
  7. println("A foo...")
  8. }
  9. }
  10. class B(val b: Int) extends A {
  11. println("B 主构造内的代码")
  12. //override 关键字表示复写父类的方法
  13. override def foo() = {
  14. println("B foo...")
  15. }
  16. }

如果想调用父类的方法

    super.foo()// 调用父类的foo方法

构造器的特征:

java:<br />     父的静态->子的静态->父的构造->子的构造<br />    scala:<br />     先执行父的构造, 然后才是子的构造器<br />     父的主构造->子的主构造->子构造

覆写的覆写:

  1. val只能覆写val和不带参数的def
  2. var只能覆写抽象的var