nicht wirklich die Antwort fragte Sie, aber ich glaube, Sie suchen: Die Sie Use Case beschrieben ist, was welche Schnittstellen für gemacht werden. Ich nehme an, sie teilen eine Reihe von Methoden, die Sie verwenden möchten.
Sie diese Methoden in einer Schnittstelle zu definieren,
dann haben Sie Ihre 20 Klassen implementieren diese Schnittstelle
dann myFunction nicht Object obj
akzeptieren, aber interface obj
und dann Methoden über die Schnittstellenfunktionen aufrufen.
interface IMyObject {
public String[] getStuff() {
}
public void doStuff() {
}
}
dann haben "Objekte" umzusetzen
class Foo implements IMyObject {
public String[] getStuff() {
return new String[10];
}
public void doStuff() {
System.out.println("1+1 = 4");
}
}
class Bar implements IMyObject {
public String[] getStuff() {
return new String[100];
}
public void doStuff() {
System.out.println("5+1 = too hard");
}
}
class Baz implements IMyObject {
public String[] getStuff() {
return new String[42];
}
public void doStuff() {
System.out.println("1+1 = 2");
}
}
dann Ihre myfunction die Schnittstelle akzeptieren
public void myFunction(IMyObject obj){
obj.doStuff();
}
Der "Vertrag" von IMyObject besagt, dass jede IMyObject die Methoden haben getStuff und doStuff, so können Sie diese immer aufrufen.
public void something() {
Bar myBar = new Bar();
Baz myBaz = new Baz();
myFunction(myBar);
myFunction(myBaz);
}
Sie meinen 'Casting'. – xenteros
Sind die Felder öffentlich? –
Felder sind privat mit Getter/Setter – TheNewby