Ich brauche jemanden, der einen Blick darauf wirft, was ich über diese Codezeilen denke.Wie funktioniert @override in Java?
class AAA
{
public void rideMethod(){System.out.println("AAA's Method");
public void loadMethod(){"void Method"};
}
class BBB extends AAA
{
public void rideMethod(){System.out.println("BBB's Method");
public void loadMethod(int num){"int Method"};
}
class CCC extends BBB
{
public void rideMethod(){System.out.println("CCC's Method");
public void loadMethod(double num){"double Method"};
}
class Ride
{
public static void main(String[] args)
{
AAA ref1 = new CCC();
BBB ref2 = new CCC();
CCC ref3 = new CCC();
ref1.rideMethod();
ref2.rideMethod();
ref3.rideMethod();
ref3.loadMethod();
ref3.loadMethod(1);
ref3.loadMethod(1.2);
}
}
//These are results.
CCC's Method
CCC's Method
CCC's Method
void Method
int Method
double Method
Hier ist was ich nehme.
Die CCC() für ref # im Hauptbereich, die AAA() und BBB() erbt, ist die Sache, die wir hier auf die Box beziehen können, die jeden Aspekt von Klassen enthält. und AAA, BBB und CCC (als Klassentyp) für Ref # ist wie eine Grenze, auf die wir zugreifen können. Da ref # mit CCC() initialisiert wurde und das Konzept von @override angepasst wurde, muss Syso ("CCC's Method") als Ergebnis auftreten. Jede loadMethod teilt "void int und double Method" auf, weil die Klassen, die sie anfänglich verwendeten, AAA und BBB sind.
danke fürs lesen!
Was ist Ihre Frage genau? Sie erwähnen auch '@ override', aber es gibt keinen' @ override' in Ihrem Code ... – Joris
ist das eine Frage? Ich kann nicht verstehen, wo das Problem ist – Roxoradev
[Überschreiben] (https://docs.oracle.com/javase/tutorial/java/IandI/override.html)! = [Polymorphismus] (https://docs.oracle. com/javase/tutorial/java/IandI/Polymorphie.html) – Fildor