Les limites de l'héritage (Java) [dupliquer]


Cette question a déjà une réponse ici:

Je suis assez nouveau dans la théorie de la POO de Java mais j'ai cette question

Je fais des trucs par moi-même, je voulais créer un inventaire pour un jeu qui contient différentes choses, telles que de la nourriture, des potions, des armes, des armures, des accessoires, etc, j'ai donc décidé d'utiliser des tableaux ou ArrayLists pour que.

Quand j'ai entendu que ArrayListutilisait la classe dans le <> comme paramètre, une chose m'est venue à l'esprit. Si j'ai une épée qui est une classe à part et alors j'ai une potion qui est aussi une si la sienne, ils ne pourraient pas être utilisés dans le même ArrayList, non?

MAIS si l'épée et la potion étaient toutes deux enfants d'une classe plus grande appelée "Object" qui encapsule les méthodes redondantes (je veux dire tout ce qu'elles ont dans commun) et ensuite les classes d'enfants n'auraient besoin que de se spécialiser dans certaines choses comme, les potions guérissent, les épées ajoutent des dégâts. Ensuite, si je définissais le ArrayList pour utiliser des classes de type Object, alors le ArrayList accueillerait les éléments d'épée et de potion dans la liste non? Et combien de fois une classe peut-elle hériter des autres? est-il une limite?

Author: awksp, 2014-06-16

1 answers

Il n'y a pas de limite que vous rencontreriez. Créez une classe de niveau supérieur nommée quelque chose comme InventoryItem et héritez de cela. Envisagez également d'utiliser l'interface de liste et une ArrayList comme implémentation. Il sera plus facile de travailler avec un tableau car vous pouvez ajouter/supprimer des éléments et ne pas avoir à vous soucier des emplacements vides. Je créerais probablement une classe nommée Inventory qui cache le tableau.

 1
Author: Dave, 2014-06-16 19:45:31