Ich habe zwei Java Klassen: B, die eine weitere Klasse A wie folgt erweitern:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Ich möchte die A.myMethod()
von B.myMethod()
aufrufen. Ich komme aus der C++ - Welt , und ich weiß nicht, wie ich diese grundlegende Sache in Java machen soll.
Das gesuchte Schlüsselwort ist super
. Siehe diese Anleitung zum Beispiel.
Nennen Sie es einfach mit super.
public void myMethod()
{
// B stuff
super.myMethod();
// B stuff
}
Die Antwort lautet wie folgt:
super.Mymethod();
super(); // calls base class Superclass constructor.
super(parameter list); // calls base class parameterized constructor.
super.method(); // calls base class method.
super.MyMethod()
sollte innerhalb von MyMethod()
von class B
aufgerufen werden. So sollte es sein wie folgt
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() {
super.MyMethod();
/* Another code */
}
}
Ich bin mir ziemlich sicher, dass Sie es mit dem Java Reflection-Mechanismus machen können. Es ist nicht so einfach wie mit Super, aber es gibt Ihnen mehr Power.
class A
{
public void myMethod()
{ /* ... */ }
}
class B extends A
{
public void myMethod()
{
super.myMethod(); // calling parent method
}
}
rufe super.myMethod () auf;
Verwenden Sie das Schlüsselwort super .
class test
{
void message()
{
System.out.println("super class");
}
}
class demo extends test
{
int z;
demo(int y)
{
super.message();
z=y;
System.out.println("re:"+z);
}
}
class free{
public static void main(String ar[]){
demo d=new demo(6);
}
}
Sehen Sie, hier überschreiben Sie eine der Methoden der Basisklasse. Wenn Sie also die Basisklassenmethode aus einer geerbten Klasse aufrufen möchten, müssen Sie das Schlüsselwort super in verwenden die gleiche Methode der geerbten Klasse.
super.baseMethod(params);
rufen Sie die Basismethoden mit super Schlüsselwort auf und übergeben Sie die entsprechenden Parameter.
Wenn Sie diese Methoden zur Initialisierung verwenden, verwenden Sie Konstruktoren der Klasse A und übergeben Sie das Schlüsselwort super im Konstruktor der Klasse B.
Oder wenn Sie eine Methode der Superklasse aus der Unterklassenmethode aufrufen möchten, müssen Sie das Schlüsselwort super in der Unterklassenmethode verwenden wie: super.myMethod ();
// Using super keyword access parent class variable
class test {
int is,xs;
test(int i,int x) {
is=i;
xs=x;
System.out.println("super class:");
}
}
class demo extends test {
int z;
demo(int i,int x,int y) {
super(i,x);
z=y;
System.out.println("re:"+is);
System.out.println("re:"+xs);
System.out.println("re:"+z);
}
}
class free{
public static void main(String ar[]){
demo d=new demo(4,5,6);
}
}