Bonjour,
Je me pose une question à propos de quelque chose que je vois très souvent en Java, et je voudrais savoir si c'est parce que c'est java ou parce que c'est la poo.
On a une classe abstraite A, et une classe B qui hérite de A.
Très souvent donc, on trouvera :
Pour quelle raison fait-on ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 A maclasse = new B();
Il est très probable que B contienne des méthodes qui ne sont pas dans A, et donc déclarer maclasse comme ça ne permet pas d'utiliser ces méthodes.
Sauf si on caste maclasse en B, ce qui du coup devient franchement n'importe quoi.
L'abstraction, d'apres moi, c'est très bien quand justement on veut généraliser. Par exemple, s'il y a 20 classes qui héritent de A, et qu'on veut dans une fonction juste appeller une méthode qui est déjà dans A, on a, à ce moment là, pas besoin de savoir quelle classe c'est.
Par contre instancier volontairement une classe en se privant de ses membres, je ne vois pas l'astuce.
Donc, vu que j'ai probablement mal compris l'idée générale, si une bonne âme pouvait m'éclairer, je lui en serait reconnaissant.
Merci
Partager