human
Qu'est-ce que les méthodes/classes abstraites dans les langages de programmation. Surtout en Java. Je l'apprends en ce moment mais je n'arrive pas à le comprendre. Explique comme si j'avais cinq ans.
gpt
Les classes abstraites définissent des méthodes dont toutes les classes héritantes auront besoin ( calcul et aire pour une forme par exemple ) , mais où l'implémentation dépend de la classe héritante ( vous ne pouvez pas calculer l'aire si vous ne savez pas ce que la forme ressemble à ) . Cela garantit que toutes les classes héritées ont une implémentation valide pour le calcul des surfaces. Une classe abstraite est une classe avec des membres abstraits. Vous ne pouvez pas instancier une classe qui contient une méthode abstraite sans une implémentation concrète. Considérez-les comme des espaces réservés pour les méthodes à implémenter plus bas dans l'arbre d'héritage. Edit : dit quelques choses plus claires. Edit2 : La raison pour laquelle vous faites cela est de créer, par exemple, un framework qui ne se soucie pas des détails des objets avec lesquels il travaille. Tout ce qu'il a besoin de savoir, c'est que quelque chose est un (hérite) de Shape et que vous appelez GetArea() pour retourner is area. Vous pouvez ensuite lui passer n'importe quelle implémentation de la classe de forme abstraite et tout fonctionnera.