Scala中没有接口的概念,但提供了trait特质,它就相当于Java中的接口。
<br/>
**1. 定义特质基本语法**
```scala
trait TraitName {
字段
成员方法
}
```
* 特质用于在类之间共享程序接口和字段,类似Java接口
* 特质不能被实例化,因此没有构造参数,类似Java接口
* 类和单例对象都可以继承特质(`extends`)
* 实现特质中的方法使用`override`
**2. 定义特质**
```scala
trait Animal {
// 1. 字段的修饰符可以是private、 protected
private var name1:String = "Animal"
protected var name2:String = ""
// 2. 不添加修饰符默认访问权限相当于Java的public
var age = 0
// 3. 可以声明一个方法
// 修饰符要么是protected或者不写,不能是private
protected def eat():Unit
// 4. 可以定义有方法体的方法
def eyes():Unit = { println("大多数动物都有眼睛!") }
}
```
<br/>
**3. 继承特质**
```scala
class Dog(var peer:String) extends Animal{
// 1. 必须实现特质中没有方法体的方法
// override关键字是可选的
override protected def eat(): Unit = println ("Dog eat")
// 2. 重写特质中有方法体的方法,override是必须的
override def eyes():Unit = { println("Dog eyes...") }
}
```
- Scala是什么?
- Scala特性
- 开发环境搭建
- 环境搭建
- windows下的环境搭建
- IntelliJ IDEA环境搭建
- Scala关键字
- Hello, World
- 数据类型
- 数据类型
- 数据类型层次结构
- 字面量
- Null类型
- Nothing类型
- Unit类型
- 变量与常量
- type定义类型别名
- 字符串插值器
- 条件控制
- 循环控制
- 数组
- 元组
- 集合
- 集合分类
- List常用操作
- Set常用操作
- Map常用操作
- 函数
- 函数声明与调用
- 函数与方法的区别
- 函数注意事项
- 匿名函数
- 可变参数
- 高阶函数
- 中置表达式
- 函数嵌套
- 函数科里化
- 隐式参数
- 隐式函数
- 闭包
- 类和对象
- Java与Scala的比较
- 有关类与对象概念
- 类
- 类的定义和调用
- 类的继承
- 抽象类
- 单例对象
- 伴生对象和伴生类
- 特质
- 定义特质
- 混入特质
- 抽象类与特质的选择
- 自身类型
- 依赖注入
- this别名
- 样例类
- 枚举类
- 泛型类
- 包与包对象
- 模式匹配
- 基本语法
- 匹配模式
- 偏函数
- 注解
- 运算符
- 正则表达式
- 隐式类
- 异常处理
- 高级类型
- 结构类型
- 复合类型