1.抽象类
1.具体的类 只有var才可以使用占位符,val不可以使用占位符
2.抽象类 字段可以不用初始化,方法不用有方法体。
3.复写抽象字段方法 用override 关键字 但是不用 override字段也是可以得
2.Scala中作为接口的trait、在对象中混入trait代码实战
我们先看下JAVA里面抽象类与接口的区别
抽象类
只要类里面有一个方法是抽象的,它就是抽象类
抽象类的子类有义务去补充抽象方法
抽象类不能被实例化
接口
接口不是类
Interface A
Interface 中的变量必须是静态变量 static final
n个抽象函数在子类中必须都给予实现
子类实现接口,子类中的方法必须为public
1.trait 是用extends 和 with 关键字来实现 第一次用extends 第二次用with
2.trait 与java中接口一个很大的区别是 JAVA抽象方法没有方法体 但是trait中可以有,假如trait中有方法实现实现继承trait的类的方法必须要有
override 关键字来修饰。如果trait中没有方法体就可以不用override来修饰, 但是规范一般必须要有override来修饰 。
3,混入trait,都必须继承同一个类这里指logger
而且必须实现方法
对象混入可以修改trait的默认行为 前提是trait是logger的子trait