Bonjour à toutes et à tous,

Je suis en train de comprendre le polymorphisme en JAVA, et j'ai vu cet exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
 class TestA {
 public void start() { System.out.println("Class A"); }
 }
 public class TestB extends TestA {
 public void start() { System.out.println("Class B"); }
 public static void main(String[] args) {
 ((TestA)new TestB()).start();
 }
 }
Le résultat de l'exécution est "Class B", mais j'aimerais bien comprendre pourquoi?; d'après ce que j'ai compris, le résultat est "Class B" parcequ'il s'agit d'une méthode redéfinie (Suis-je correct içi ?)

Ou bien c'est parce qu'il s'agit du casting à ce niveau?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
((TestA)new TestB()).start();
De plus, est ce qu'on "cast" une référence ou bien un objet?

Je suis un peu dans le brouillard ici , Pourriez-vous me fournir des explications à propos ce point la (même des liens auxquels je peux suivre!)

Merci