Dans l'une des diapositives de mon professeur sur le ploymorphisme, je vois ce morceau de code accompagné de quelques commentaires :
discountVariable = //will produce
(DiscountSale)saleVariable;//run-time error
discountVariable = saleVariable //will produce
//compiler error
Comme vous pouvez le voir, il est dit dans la première déclaration de casting qu'il produira temps d'exécution et dans l'autre il est dit qu'il produira erreur de compilation .
Quelles sont les causes de ces erreurs ? et en quoi diffèrent-elles les unes des autres ?