点击(此处)折叠或打开
- class Person1(val name : String, var age : Int){
- println("The primary constructor of Person")
- val school = "BJU"
- def sleep = "8 hours"
- override def toString = "I am a Person1!"
- }
点击(此处)折叠或打开
- class Worker(name : String, age : Int, val salary : Long) extends Person1(name, age){ //创建Worker实例时,也会使用name、age填充父类实例。子类也必须将父类的主构造器的参数填满
- println("This is the subClass of Person, Primary constructor of Worker")
- override val school = "Spark" //覆盖父类的属性
- override def toString = "I am a Worker!" + super.sleep //super调用父类的方法
- }
点击(此处)折叠或打开
- object OverrideOperations{
- def main(args: Array[String]) {
- val w = new Worker("Spark", 5, 100000)
- println("School :" + w.school)
- println("Salary :" + w.salary)
- println(w.toString())
- }
- }
结果:
The primary constructor of Person //先构造父类(跟java一样 )
This is the subClass of Person, Primary constructor of Worker //构建子类
School :Spark // 属性被覆盖
Salary :100000 //子类属性
I am a Worker!8 hours //子类覆盖
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28912557/viewspace-1839810/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28912557/viewspace-1839810/