scala之匿名子类
匿名子类就是没有名字的类
我们先定义一个父类, 看匿名子类如何设置。
父类的代码如下:父类为Tearch
package cn.qianfeng object demo5_object { def main(args: Array[String]): Unit = { val te = Tearch("kongzhagen", 35) te.show Tearch.ttt } } class Tearch(name:String, age:Int, course:String){ // 伴生类 println("我是Teach主类") private val ta = "liming" def show(): Unit ={ println(s"姓名 = ${name}, 年龄 = ${age}, 课程 = ${course}") } } object Tearch{ // 伴生对象 def apply(name:String, age:Int): Tearch ={ // 对伴生类的重构 val tea = new Tearch(name, age, null) println(tea.ta) tea } def ttt: Unit ={ println("三人行") } }
创建匿名子类
package cn.qianfeng object demo_AnonimousSubClass { def main(args: Array[String]): Unit = { val p:Tearch = new Tearch("kong",23,"yuwen"){ // Teach的匿名子类,引用了同一个包中的类方法 override def show(): Unit = { // 重写Teach类 println("show de 起飞!!!") } } p.show() } }
结果:
我是Teach主类
show de 起飞!!!