YD's blog

Posted 三 10 2月 2016

Scala for the impatient: ch8

類擴展 extends 將類定義為final,則他就不能被擴展 單個方法或字段也可聲明為final (類似scala val) 調用超類的方法 super.

class Employee(defId:Int,defName:String){
  val name=defName
  val id=defId
}
val p1=new Employee(1,"ANDY")
p1.isInstanceOf[Employee]//可檢查某個對象是否為一個給定的類
p1.getClass==classOf[Employee]//測試p1指向一個對象但又不是其子類
但通常類型檢查或轉換相比,模式匹配會是更好的選擇 [protected] 只能被子類訪問 class Person(name:String,age:Int) class Employee(name:String,age:Int,val salary:Double) extends Person(name,age) 上述代碼定義了一個子類語調用一個超類構造器得主構造器class Square(x:Int,y:Int,width:Int) extends java.awt.Rectangle(x,y,width,width) scala類擴展java類,他的主構造器需要調用java超類的某個構造方法 若class內有非完整定義的方法,就必須宣告為abstract abstract class Person(val name:String){ def id:Int//為被完整定義 }

Category: Scala
Tags: Scala