class Car {
func upgrade() -> Car {
return Car()
}
}
class RacingCar : Car {
}
let racingCar = RacingCar()
let upgradedRacingCar = racingCar.upgrade()
// ideally upgradedRacingCar should be a RacingCar
How to make the upgrade method create RacingCar objects if its called on a subclass, without implementing it in the RacingCar?