Scala supports single inheritance, not multiple inheritance.
A child class can have one and only one parent class.
The root of the Scala class hierarchy is Any, which has no parent.
class Vehicle (speed : Int){
val mph :Int = speed
def race() = println("Racing")
}
The Vehicle class takes one argument, which is the speed of the vehicle.
This argument must be passed when creating an instance of class Vehicle, as follows:
new Vehicle(100)
The class contains one method, called race.
Extending from a base class in Scala is similar to extending in Java except for two restrictions:
override keyword,It is possible to override methods inherited from a super class in Scala as follows:
class Car (speed : Int) extends Vehicle(speed) {
override val mph: Int= speed
override def race() = println("Racing Car")
}
The class Car extends Vehicle class using the keyword extends.
The field mph and the method race
needs to be overridden using the keyword override.
The following code shows another class Bike that extends 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 ) }