scala学习,建议应该具有一定的java基础,这样更容易上手。
类
类的定义和java无差异。
构造函数(构造方法)
如果我们要定义一个构造函数,可以如下定义:
继承
继承在scala中用extends关键字,方法的重载用override关键字。
抽象类
定义了没有实现的方法,必须由子类实现。抽象类无法创建实例。
特质(Trait)
特质相当于java中的接口interface,但比interface功能更强大,trait中可以定义已实现的方法(当然java8现在也支持了)。
多个特质扩展用with关键字。
特质和抽象类的使用场景
抽象类只可以继承一个,特质可以扩展多个,所以,优先使用特质。
当构造函数需要参数的时候,只能使用抽象类,因为特质是无法指定构造函数的参数的。如下是错误的:
泛型
Scala中使用泛型使用方括号[]。
在方法上使用泛型: