Scala只允许继承一个父类.并且子类可以继承父类中的所有属性和方法,但是子类不可以直接访问父类中的私有属性和方法。
在Scala子类继承父类的时候,需要注意以下几点。
(1) 如果子类要重写一个父类中的非抽象方法,则必须使用override关键字,否则会出现语法错误。
(2) 如果子类要 重写父类中的抽象方法,则不需要使用override关键字:
下面,创建一个 Poimt类和个Location 类,并且Location类继承Point类,演示子类 Location 重写父类Point 中的字段。
单例对象:
在Scala中,没有静态方法或静态字段,所以不能直接用类名访问类中的方法和字段, 而是通过创建类的实例对象去访问类中的方法和字段。.Sceala中提供了objeet 这个关键字用来实现单例模式,使用关键字object创建的对象为单例对象。
创建单例对象的语法格式如下:
Object objectName
关键字object主要用于创建单例对象
objectName为单例对象的名称
在Scala中,在一个源文件中有一个类和一个单例对象,若单例对象名与类名相同。则把这个单例对象称作伴生对象(companion object);这个类则被称为是单例对象的伴生类 (companion elass)。类和伴生对象之间可以相互访问私有的方法和字段。
伴生对象:
演示如何操作类中的私有方法和字段
在Scala中,Trait(特质)的功能类似于Java中的接口,但Trait的功能比Java中的接 口强大。例如Trait可以对定义字段和方法进行实现,而接口却不能。Scala 中的Trait可以被类和对象(Objects)使用关键字extends来继承。
创建特质的语法格式如下:
trait traitName
People需要重写方法
Ctrl+I:重写方法