Scala支持單繼承,而不是多重繼承。
子類可以只有一個(gè)父類。
Scala類層次結(jié)構(gòu)的根是Any,沒(méi)有父類。
class Vehicle (speed : Int){ val mph :Int = speed def race() = println("Racing") }
Vehicle類采用一個(gè)參數(shù),即車輛的速度。
創(chuàng)建類Vehicle的實(shí)例時(shí),必須傳遞此參數(shù),如下所示:
new Vehicle(100)
該類包含一個(gè)方法,稱為race
。
在Scala中擴(kuò)展基類類似于在Java中擴(kuò)展,除了兩個(gè)限制:
override
關(guān)鍵字,可以覆蓋從Scala中的超類繼承的方法,如下所示:
class Car (speed : Int) extends Vehicle(speed) { override val mph: Int= speed override def race() = println("Racing Car") }
類 Car
使用關(guān)鍵字 extends
擴(kuò)展 Vehicle
類。
字段mph和方法種族需要使用關(guān)鍵字覆蓋來(lái)覆蓋。
以下代碼顯示了另一個(gè)類Bike
擴(kuò)展Vehicle
。
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") } object Main extends App { val vehicle1 = new Car(200) println(vehicle1.mph ) vehicle1.race() val vehicle2 = new Bike(100) println(vehicle2.mph ) }
更多建議: