0

Downcast

Почему не получается сделать downcast и вылазит исключение ? Animal animal2 = new Animal(); animal2.Age = 20; Dog dog2 = (Dog)animal2; Console.WriteLine(dog2.Age);

21st Aug 2020, 5:05 PM
Антон
Антон - avatar
1 Réponse
+ 2
animal2 was created as an instance of Animal. In this case it is impossible to downcast it to Dog, because the compiler knows that a subclass might have additional methods and fields compared to a parent class, that may not have been initialized. So this is illegal operation. You can downcast only if you create your object as the instance of the subclass: Animal animal2 = new Dog(); https://javabeat.net/java-downcasting/ https://stackoverflow.com/questions/380813/downcasting-in-java https://stackoverflow.com/questions/16215143/how-do-i-turn-an-animal-instance-into-a-dog-instance Actually I realized you ask about C# but I believe the rules and the syntax are the same.
21st Aug 2020, 7:47 PM
Tibor Santa
Tibor Santa - avatar