Ich bin neu in Java und habe einige Tutorials zum Überschreiben von Methoden gelesen, aber ein Beispiel, das ich mir anschaut, funktioniert nicht so, wie ich es erwarte. Zum Beispiel habe ich den Code:Eine Java-Methode überschreiben
public class A{
public void show(){
System.out.println("A");
}
public void run(){
show();
}
public static void main(String[] arg) {
new A().run();
}
}
public class B extends A{
@Override
public void show(){
System.out.println("B");
}
}
Als ich instanziiert und rufen B.run(), würde ich erwarten, "B" ausgegeben zu sehen. Allerdings sehe ich stattdessen "A". Was mache ich falsch?
Edit: Ja, die Klassen sind in zwei separaten Dateien. Sie werden zusammen der Kürze halber gezeigt.
Bearbeiten: Ich bin mir nicht sicher, wie B instanziiert wird, da es von einem Drittanbieter-Programm mit einem Classloader durchgeführt wird.
Bearbeiten: Weitere Informationen zum Drittanbieter-Programm. Es beginnt mit dem Aufruf von A.main(), was ich anfangs nicht gezeigt habe (Entschuldigung). Ich nehme an, ich muss "new A(). Run();" generischer, um den Namen der aktuellen Klasse zu verwenden. Ist das möglich?
Wie werden Sie dies instanziieren und aufrufen? –
@Prasoon Es gab keine Erwähnung von Datei, nur Klassen. Wir konnten nicht auf die tatsächlichen Dateien schließen, in denen sie sich befanden. – KLE