scala型別檢查和轉換
阿新 • • 發佈:2019-01-09
Scala和Java中的型別檢查和轉換
Scala | Java |
---|---|
obj.isInstanceOf[C1] |
obj instanceof C1 |
obj.asInstanceOf[C1] |
(C1)obj |
classOf[C1] |
C1.class |
* p.isInstanceOf[Employee]
,檢查是否指向Employee類以及其子類
* p.getClass==classOf[Employee]
,檢查p指向Employee,而不是其子類
相比型別轉換與檢查,模式匹配通常better
子類的構造
上面的這段程式碼兩點作用:
- 定義了一個子類
Employee
- 定義了呼叫超類構造器的主構造器
重寫欄位
覆寫限制 | |
---|---|
def |
只能覆寫另一個def |
val |
只能覆寫另一個val 或者不帶引數的def |
var |
只能重寫另一個抽象的var ,抽象很重要 |
匿名子類
alien
指向了一個結構型別
的物件,該型別記為Person{def greeting:String}
,還可以用這個型別作為引數型別的定義:def fun(p:Person{def greeting:String})=doSomething