Je suis débutant, mais je l'ai écrit pour une étude personnelle
-Le stockage d'une instance de sous-classe dans un objet de superclasse s'appelle ** upcast ** -Comme le compilateur effectuera automatiquement un cast si la compatibilité peut être vérifiée, la sous-classe héritée peut garantir tous les membres de la superclasse, de sorte que l'upcast est effectué ** implicitement **. -Si la superclasse et la sous-classe ont des variables de champ et des méthodes avec le même nom, ** les variables de champ ont une superclasse et la méthode a une priorité de sous-classe **.
-À l'inverse de l'upcast, le stockage d'un objet de superclasse dans un objet de sous-classe est appelé ** downcast **. · Les superclasses ne peuvent pas garantir tous les membres d'une sous-classe, donc si vous voulez passer d'une superclasse à une sous-classe, vous devez ** explicitement ** downcast. -Si vous downcast un objet qui n'a pas été upcast, vous obtiendrez une exception ClassCastException, vous devez donc effectuer une conversion ascendante une fois, puis downcast ** -Il est possible de déterminer si le downcasting est possible en comparant si l'objet hérite du type de classe spécifié ou de la classe spécifiée avec l'opérateur instanceof.