Обобщенные типы

class Vehicle {
    func test() {
        print("test \(self)")
    }
}

class CarVehicle { }

class TruckVehicle {}

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()
}