Bonjour,
J'ai besoin d'éclairage sur un souci de conception, je vous explique.
J'ai écrit une application java qui utilise plusieurs classes. Ensuite j'ai écrit une autre application java qui reprend pas mal de code et de classes de la première.
Du coup je me suis dit, c'est moche, faut factoriser tout ça !
Mon idée était de créer un package commun aux 2 applis et de redéfinir que les méthodes qui diffèrent. Ensuite je fais un jar de ce package et je l'import dans mes applis finales.
Dans mon package je vais trouver des classes "classiques" utilisées tel quelle et des classes abstraites dont certaines méthodes seront redéfinies dans chacune de mes 2 applis.
La dessus je me retrouve confronté à 2 soucis.
1- dans mon package, j'ai défini une classe abstraite A qui sera redéfinie en A1 et A2 dans chacune de mes applis.
Toujours dans mon package, j'ai aussi une autre classe B qui utilise des objets de type A et donc j'ai écrit : A obj = new A();
Sauf qu'il n'est pas d'accord car A est abstraite et donc on ne peut pas l'instancier tant qu'on n'a pas redéfini toutes les méthodes abstraites. Comment je peux faire ?
2- j'ai des classes internes dans des classes abstraites. Et je voudrai que celles ci soient aussi abstraites car le comportement de certaines méthodes va changer. Comment on peut faire ça ?
Merci de vos éclaircissements.
Partager