package examples
class Person8
{
var name:String=""
def this(name:String)
{
this()//一定要先調用主構造器.每個輔助構造器最終都會調用主構造器
this.name=name
}
override def toString=
{
"name:"+name
}
def show=
{
println("Person:"+toString)
}
}
class Employee(name:String,salary:Double) extends Person8(name:String) //只有主構造器能夠調用超類的構造器
{
override def toString=
{
"name:"+name+",salary:"+salary
}
override def show=
{
println("Employee:"+toString)
}
}
object Example8 extends App{
val t1 = new Person8("linger")
println(t1)
t1.show
val t2 = new Employee("linger",15)
println(t2)
t2.show
val t3:Person8 = t2 //這裏跟c++不一樣阿,c++必須是虛函數,纔會呈現多態.scala裏沒有虛函數,所有函數只要被override了都會呈現多態
println(t3)
t3.show
}
輸出:
name:linger
Person:name:linger
name:linger,salary:15.0
Employee:name:linger,salary:15.0
name:linger,salary:15.0
Employee:name:linger,salary:15.0
本文鏈接:http://blog.csdn.net/lingerlanlan/article/details/43836271