Bien sûr, ce qui suit ne fonctionne pas en Java (pas de méthodes statiques abstraites) ...Méthode statique usine statique [getInstance()] dans Java?
public abstract class Animal {
public abstract static Animal getInstance(byte[] b);
}
public class Dog extends Animal {
@Override
public static Dog getInstance(byte[] b) {
// Woof.
return new Dog(...);
}
}
public class Cat extends Animal {
@Override
public static Cat getInstance(byte[] b) {
// Meow.
return new Cat(...);
}
}
Quelle est la bonne façon d'exiger que Animal
classes ont une méthode getInstance
statique qui s'instancie? Cette méthode devrait être statique; une méthode abstraite "normale" n'a pas de sens ici.
connexes: http://stackoverflow.com/questions/129267/why-no-static-methods-in-interfaces- mais-static-fields-and-inner-classes-ok et http://stackoverflow.com/questions/708336/beginner-factory-pattern-in-java – finnw