Generic substitution principle in Swift

class Vehicle {
    func test() {
        //Implementation
    }
}

class Car: Vehicle { }

class Truck: Vehicle {}

var list = Array<Vehicle>()
let vehicle = Vehicle()
let car = Car()
let truck = Truck()

list.append(vehicle)
list.append(car)
list.append(truck)

for vehicle in list {
    vehicle.test()
}