public void Casting() // rzutowanie { Car sportCar = new SportCar(); Car truck = new Truck(); //sportCar.DisplayInfo(); // can't use metod DisplayInfo in this way, becaouse sportCar is a object from class Car, not SportCar. Solution of this problem is casting look down: //down casting - rzutowaniu w dół SportCar realSportCar = (SportCar)sportCar; realSportCar.DisplayInfo(); //up casting - rzutowanie w górę Car realCar = (Car)realSportCar; // now metod DisplayInfo is not available //more secure approach: bool isSportcar = sportCar is SportCar; //I check if I can cast a sportCar for the type SportCar if (isSportcar) { ((SportCar)sportCar).DisplayInfo(); } SportCar castedSportCar = sportCar as SportCar; if (castedSportCar != null) { castedSportCar.DisplayInfo(); } }
public void Begin() { SportCar sportCar = new SportCar(); Truck truck = new Truck(); List <Car> cars = new List <Car>() { sportCar, truck }; foreach (Car car in cars) { car.Start(); car.Accelerate(); car.Boost(); } Console.ReadLine(); }