1. 程式人生 > >scala型別檢查和轉換

scala型別檢查和轉換

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