Je me demandais si vous pouviez m'aider avec mon problème. Cela est probablement dû au fait que je ne connais pas les bons mots-clés à rechercher.Comment instancier (à l'intérieur d'une méthode) différentes classes implémentant la même interface?
Ce n'est pas ses devoirs, juste ... anonymisées
J'ai une interface et un groupe de classes de mise en œuvre:
interface Fruit
Banana implements Fruit
Apple implements Fruit
....
J'ai une classe de services publics de fruits. En ceci est une méthode qui prend n'importe quelle sorte Fruit et le tranche. Comment puis-je déclarer que le groupe de fruits est du même type que le fruit que je donne à la méthode?
à savoir Comment puis-je automatiser:
Fruit[] a = new Apple[pieces];
si je lui donne un Apple?
.
modifier: clarification
Je vais avoir le code comme ceci:
Fruit a = new Apple();
Fruit b = new Banana();
Fruit[] slices1 = FruitUtil.slice(a, 3); //slices1 should be an Apple
Fruit[] slices2 = FruitUtil.slice(b, 3); //slices2 should be a Banana
Fruit newApple = FruitUtil.copy(a); //newApple should be an Apple
Comment méthode puis-je écrire tranche (fruits f, tranche int) ou une copie (Fruit f) de telle sorte que je crée la même type de Fruit que ce que j'ai passé dans les arguments (sans avoir à surcharger la méthode pour chaque type, ou faire instance de contrôles)
est pas « Fruit [] a = nouvel Apple [pièces]; " assez? Cela devrait déjà fonctionner. Ou je ne reçois pas votre question? –
Ajout d'une clarification pour vous .. – masher