W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Traits就像Java中的接口,它也可以包含代碼。
在Scala中,當(dāng)一個(gè)類(lèi)從trait繼承時(shí),它實(shí)現(xiàn)trait的接口,并繼承trait中包含的所有代碼。
在Scala中,traits可以繼承類(lèi)。
當(dāng)一個(gè)類(lèi)繼承一個(gè)trait作為其父類(lèi)時(shí),也使用關(guān)鍵字extends。
即使當(dāng)類(lèi)使用with關(guān)鍵字在其他traits中混合時(shí),也使用關(guān)鍵字extends。
此外,當(dāng)一個(gè)trait是另一個(gè)trait或類(lèi)的子對(duì)象時(shí)使用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); }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: