Le downcasting signifie la conversion d'une classe de base (ou interface) vers une classe sous-classe ou feuille.
Un exemple de downcast pourrait être si vous lancez à partir System.Object
d'un autre type.
Le downcasting est impopulaire, peut-être une odeur de code: la doctrine orientée objet consiste à préférer, par exemple, la définition et l’appel de méthodes virtuelles ou abstraites au lieu d’un downcasting.
- Quels sont, le cas échéant, des cas d'utilisation corrects et appropriés pour le downcasting? C'est-à-dire, dans quelles circonstances est-il approprié d'écrire du code qui est downscast?
- Si votre réponse est "néant", alors pourquoi le downcasting est-il pris en charge par la langue?
ToString
); son autre exemple est "conteneurs Java" car Java ne supporte pas les génériques (ce que C # fait). stackoverflow.com/questions/1524197/downcast-and-upcast dit ce downcasting est , mais sans exemples quand il est approprié .
before Java had support for generics
, non because Java doesn't support generics
. Et amon vous a à peu près donné la réponse - lorsque le système de types avec lequel vous travaillez est trop restrictif et que vous n’êtes pas en mesure de le modifier.