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//為被完整定義
}