Scala 繼承

2022-05-13 15:08 更新

Scala支持單繼承,而不是多重繼承。

子類可以只有一個父類。

Scala類層次結構的根是Any,沒有父類。

class Vehicle (speed : Int){
    val mph :Int = speed
    def race() = println("Racing")
}

Vehicle類采用一個參數(shù),即車輛的速度。

創(chuàng)建類Vehicle的實例時,必須傳遞此參數(shù),如下所示:

new Vehicle(100)

該類包含一個方法,稱為race。

擴展類

在Scala中擴展基類類似于在Java中擴展,除了兩個限制:

  • 方法覆蓋需要override關鍵字,
  • 只有主構造函數(shù)可以將參數(shù)傳遞給基礎構造函數(shù)。

可以覆蓋從Scala中的超類繼承的方法,如下所示:

class Car (speed : Int) extends Vehicle(speed) {
    override val mph: Int= speed
    override def race() = println("Racing Car")
}

Car 使用關鍵字 extends 擴展 Vehicle 類。

字段mph和方法種族需要使用關鍵字覆蓋來覆蓋。

注意

以下代碼顯示了另一個類Bike
擴展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 )

}
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號