抽象类
1 类如果有未实现的方法,则类就是抽象类,不能实例化,类名加abstract,方法名不加abstract
无参数方法
1 空括号方法 def hello(): Int =
2 无参数方法 def hello: Int =
3 无副作用使用无参数方法,有副作用使用空括号方法(因为使用括号可以显式告诉是个方法,内部有副作用)
4 属性是字段还是方法不应该有影响,支持统一访问原则
组合
1 组合是指一个类持有另一个类的引用,借助引用完成任务
重写方法
1 可以使用字段重写父类的无参数方法
2 同一个类不允许有相同名的字段和方法
命名空间
Java:字段,方法,类型,包
Scala:值(字段,方法,包和单例对象),类型(类和特质)
调用父类构造器
1 只需要在父类类名后面括号里加上参数传递
class LineElement(s: String) extends ArrayElement(Array(s)){}
override
1 如果实现父类的具体成员,则需要override
2 如果实现父类的抽象成员,则可以不需要override
定义工厂对象
1 把工厂方法放到类的伴生对象中,那么伴生对象就是拥有工厂方法的工厂对象