public void Casting() //rzutowanie { Car sportCar = new SportCar(); Car truck = new Truck(); SportCar realSportCar = (SportCar)sportCar; //rzutowanie w dół SportCar castedSportCar = sportCar as SportCar; if (realSportCar != null) //zabezpieczenie czy zadziałało rzutowanie { realSportCar.DisplayInfo(); //rzutowanie daje dostęp do metod } Car realCar = (Car)realSportCar; //rzutowanie w góre }
public void Begin() { //Car car = new Car(); --tak nie idzie bo car jest klasą abstrakcyjna SportCar sportCar = new SportCar(); Truck truck = new Truck(); Car sportcar2 = new SportCar(); List <Car> cars = new List <Car>() { sportCar, truck }; foreach (Car car in cars) { car.Start(); car.Accelerate(); car.Boost(); } }