Scala Traits
2022-05-13 15:08 更新
Traits就像Java中的接口,它也可以包含代码。
在Scala中,当一个类从trait继承时,它实现trait的接口,并继承trait中包含的所有代码。
在Scala中,traits可以继承类。
当一个类继承一个trait作为其父类时,也使用关键字extends。
即使当类使用with关键字在其他traits中混合时,也使用关键字extends。
此外,当一个trait是另一个trait或类的子对象时使用extends。
例子
trait flying { def fly() = println("flying") } trait gliding { def gliding() = println("gliding") } class Vehicle (speed : Int){ val mph :Int = speed def race() = println("Racing") } class Car (speed : Int) extends Vehicle(speed) { override val mph: Int= speed override def race() = println("Racing Car") } class Bike(speed : Int) extends Vehicle(speed) { override val mph: Int = speed override def race() = println("Racing Bike") } class AirCraft(speed : Int) extends Vehicle(speed) with flying with gliding{ override val mph: Int = speed override def race() = println("Racing") override def fly() = println("Flying") override def gliding() = println("Gliding") } object Main extends App { val vehicle1 = new Car(200) val vehicle2 = new Bike(100) val vehicle3 = new AirCraft(300) vehicle3.fly() val vehicleList = List(vehicle1, vehicle2, vehicle3) println(vehicleList); val fastestVehicle = vehicleList.maxBy(_.mph) println(fastestVehicle); }
以上内容是否对您有帮助:
← Scala 对象
更多建议: