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別名
- 樣例類
- 枚舉類
- 泛型類
- 包與包對象
- 模式匹配
- 基本語法
- 匹配模式
- 偏函數
- 注解
- 運算符
- 正則表達式
- 隱式類
- 異常處理
- 高級類型
- 結構類型
- 復合類型