als je een object cast naar zijn base class dan is de data er nog wel (bij het casten verander je alleen de interpretatie van het geheugen, niet het geheugen zelf) dus je zou er nog wel een kunnen zitten door met de pointer te kloten ofzo maar dat is niet netjes.. met een typecast naar de afgeleidde class kan het ook zoals je zelf getest hebt

maar dat is ook niet slim aangezien de typecast fout zou kunnen gaan als hij toch niet van de afgeleidde class is (en als je het zeker weet dat het dat wel is, waarom behandel je hem niet als instantie van die afgeleidde class?)