Ich habe eine Abfrage: wir alle Methoden von Kind Klasse betrachten folgende Code Basis Casting-Klasse mit nach unten zugreifen:Wie kann mit einem einzigen Objekt auf alle untergeordneten Methoden zugegriffen werden?
public class BaseClass {
public void method() {
System.out.println("Base class");
}
}
ChildOne:
public class ChildOne extends BaseClass {
@Override
public void method() {
System.out.println("inside ChildOne");
}
}
ChildTwo:
public class ChildTwo extends BaseClass {
@Override
public void method() {
System.out.println("inside ChildTwo");
}
}
Und Client-Klasse
try {
List l = new ArrayList();
l.add(new BaseClass());
l.add(new ChildOne());
l.add(new ChildTwo());
for (Object o : l) {
BaseClass bc = (BaseClass) Class.forName(o.getClass().getName().toString()).newInstance();
bc.method();
}
} catch (Exception e) {
}
outPut :
Base class
inside ChildOne
inside ChildTwo
nun die Frage, was passiert, wenn
public abstract class BaseClass {
public abstract void method();
}
, da wir nicht Gegenstand der entweder Schnittstelle oder der abstrakten Klasse erstellen können. Im obigen Code kann ich auf alle Methoden aus allen Klassen zugreifen. Betrachten wir haben Schnittstelle genannt BaseClass
mit Methodendefinition, wie ich bin, dass ich diese Schnittstelle in vielen Klassen jetzt die Frage einführe, wie ich auf alle Methoden zugreifen kann, ohne bestimmte Instanz jeder Klasse zu schaffen Ich möchte das in Einzelschleife tun aber Vererbung wird uns nicht erlauben Wie geht das?
hier Baseclass ** abstrakt ** Klasse und Methode ist ** abstrakt ** zu – emotionlessbananas
@holidayCoder, ja, aber die Liste wird abgeschlossene Implementierungen von 'BaseClass' enthalten, die alle abstrakten Methoden von dem Elternteil – Andrew
haben es, Dank für die Hilfe – emotionlessbananas