Tout d'abord, je suis désolé d'avoir possiblement un titre incorrect, je pense peut-être à quelque chose d'autre mais ici va. J'ai un programme simple qui dessine des étoiles et des cercles dans Java en utilisant l'applet de traitement. J'ai une ArrayList de type Shape. Ensuite, j'ajoute diverses étoiles et cercles à travers un constructeur qui utilise une surcharge pour déterminer s'il s'agit d'une étoile ou d'un cercle.Polymorphisme, surcharge et remplacement en Java avec ArrayList
Pour l'étoile:
shapeList.add(new Shape(x, y, size, colour, numPoints, pApp));
Pour le cercle:
shapeList.add(new Shape(x, y, size, colour, pApp));
Une fois cela fait, la tâche est en boucle autour de la ArrayList pour dessiner et rendre les formes. La classe des étoiles et des cercles a ses propres méthodes de dessin pour dessiner les formes.
for (Shape shape: shapeList)
{
shape.update();
shape.draw();
}
Le problème que je vais avoir, est qu'il ne parvient pas à remplacer le vide tirage au sort() dans la classe de forme quand je le veux à « retomber » dans la classe étoile ou Circle et exécuter ce tirage spécifique() selon que l'objet est une étoile ou un cercle à ce stade dans ArrayList.
Merci!
Mais vous n'instanciez pas 'Star' ou' Circle', vous instanciez 'Shape's ... Vous devez utiliser les constructeurs des classes appropriées. – Zircon
Pour Star, je conseille d'ajouter un Polygon/Polygon2D. Pour Circle, je conseille d'ajouter un Ellipse2D. – ControlAltDel
@Zircon ouais c'était une erreur, merci! – badprogramming99