/** * trait中定义具体方法和具体的字段 */ trait TraitDemo02 { //具体字段(非抽象字段) //使用var修饰的非抽象字段,不能被重写 var name: String = "李四" //使用val修饰的非抽象字段,可以被重写 val age = 20 //抽象字段,不管是使用var或val修饰的抽象字段,都可以被重写 val sex: String def say: Unit = { println("hello world!") } } class ClassFurther { var name2 = "王五" } //如果是继承Class获取的field,实际是定义在父类中的;而继承trait获取的field就直接被添加到了类中 class ClassTest extends ClassFurther with TraitDemo02 { override val sex: String = "男" } object TraitDemo02Test { def main(args: Array[String]): Unit = { val ct = new ClassTest println(ct.sex) ct.say println(s"${ct.name},${ct.name2},${ct.age}") } }
Scala Trait(二)
最新推荐文章于 2020-11-13 16:24:45 发布