美文网首页
Scala-9.面向对象-抽象类

Scala-9.面向对象-抽象类

作者: 悠扬前奏 | 来源:发表于2019-07-10 23:33 被阅读0次
    • 使用抽象类:Scala的trait(特质)比抽象类更加灵活,需要再一下情况中使用抽象类:
      • 需要创建一个有构造函数参数的基类(因为trait不允许有构造函数参数)
      • 需要被Java调用
    • 在抽象基类(或trait)里定义属性:
      • 在抽象类(或者trait)中定义的抽象或有实现的属性,可以被所有子类引用
      • 通过声明val和var字段,它们可以使抽象的,也可以是有实现类的。
    • 抽象类的抽象字段:
      • 抽象var字段生成getter和setter方法
      • 抽象val字段生成getter方法
      • 在一个抽象类或者trait中定义一个抽象字段时,scala编译器不会在结果代码中创建一个字段,只会生成该val或者var字段的响应方法
      • 在实现类中为这些字段提供具体值时,必须再将字段定义为val或者var。
    • 在抽象类中定义一个val字段时,可以给一个初始值,然后在子类中覆盖
    • 可以在trait或抽象类中指定var的初始值,然后在具体子类中参考这些字段。
    • 不要使用null,可以用Option/Some/None模型初始化字段

    相关文章

      网友评论

          本文标题:Scala-9.面向对象-抽象类

          本文链接:https://www.haomeiwen.com/subject/pbkfkctx.html