Scala中的继承:超类的构造、重写字段、重写方法
2015-07-14 21:53
393 查看
Person1类
package kmust.hjr.learningScala12 /** * Created by Administrator on 2015/7/14. */ class Person1(val name:String,var age:Int){ println("The primary constructor of Person1 !") val school="KMUST" def sleep="8 hours" override def toString="I am a Student of KMUST !" }
说明:override 重写字段或者类的属性或方法的关键字
所有的对象都有toString()方法,所以可以直接覆写toString()方法;(例如所有的java类都继承Object)
Worker类-继承Person1类
注意:子类在表达继承父类的时候,必须把父类的主构造器的所有参数都填充满在表达继承的时候就填充父类主构造器参数,如下所示:
class Worker(name:String,age:Int,val salary:Long)extends Person1(name,age)
class Worker(name:String,age:Int,val salary:Long)extends Person1(name,age){ println("This is the subClass of Person1,Primary constructor of Worker !") override val school="CQUT" override def toString="I am a Worker !"+super.sleep }
说明:在子类中调用父类的方法采用super关键字
父类中的sleep方法,在子类中调用,则采用super.sleep
main函数
object OverrideOperation { def main(args:Array[String]): Unit ={ val w=new Worker("HJR",25,500000) println("School:"+w.school) println("Salary:"+w.salary) println(w.toString) } }
附件:
相关文章推荐
- android开发步步为营之67:使用android开源项目android-async-http异步下载文件
- 抽象类与接口的区别
- 批量update代替游标
- TOJ 3852 Haitang1 三维树状数组
- SQL server
- mysql,mysqli和PDO的区别
- 轻量级数据sqlite的C++调用示例
- 打开一个已经写好的Android studio工程的方法
- 【剑指offer】连续子数组最大和
- 九度oj1004
- 待解决和深究问题
- 去美国之前
- Spring整合JAX-WS
- 6.5-6
- 每天一个Linux命令-3( ls和 ll )
- struts2 Convention插件零配置,使用注解开发
- MyBatis知多少(7)持久层
- 第四章、bash特性详解
- webservice获取客户端IP地址
- PAT 1003. Emergency