一.trait定义和作用
- 1.trait是关键字,identified 表示一个合法的标记。
- 2.作用:封装成员和方法,供其他类来实现。它可以实现多继承!
package level02
/*
* 特质: trait
* 它用来实现多继承
*/
object Class20 {
trait Tall {
var height: Int = 180
}
trait Eye {
var beautifulEye: String = "大眼睛"
}
// class 就有两个父类
class Girl extends Tall with Eye {}
def main(args: Array[String]): Unit = {
val girl = new Girl()
girl.beautifulEye
girl.height
}
}
二.实现多个特质
1.定义两个特质,使用一个类来实现他们 2.子类一定要实现所有的父类中的抽象成员(属性、方法)
package level02
object Class21 {
trait Tall {
var height: Int = 180
var name: String // 抽象属性
def say(): Unit = println(s"hi,${name}") // 具体方法
def cry(): Unit // 抽象方法
}
trait Eye {
var beautifulEye: String = "大眼睛"
var age: Int
}
// 子类一定要实现所有的父类中的抽象成员(属性、方法)
class Girl extends Tall with Eye {
var name: String = "女生"
def cry(): Unit = println("cry ......")
var age: Int = 18
}
def main(args: Array[String]): Unit = {
val girl = new Girl()
girl.say()
println(girl.beautifulEye)
println(girl.height)
}
}