J'ai deux Java classes: B, qui étend une autre classe A, comme suit:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Je voudrais appeler le A.myMethod()
de B.myMethod()
. Je viens du monde C++ , et je ne sais pas comment faire cette chose de base en Java.
Le mot clé que vous recherchez est super
. Voir ce guide , par exemple.
Appelez-le simplement avec super.
public void myMethod()
{
// B stuff
super.myMethod();
// B stuff
}
La réponse est la suivante:
super.Mymethod();
super(); // calls base class Superclass constructor.
super(parameter list); // calls base class parameterized constructor.
super.method(); // calls base class method.
super.MyMethod()
doit être appelé à l'intérieur de MyMethod()
du class B
. Donc, il devrait être comme suit
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() {
super.MyMethod();
/* Another code */
}
}
Je suis presque sûr que vous pouvez le faire en utilisant Java mécanisme de réflexion. Ce n'est pas aussi simple que d'utiliser super, mais cela vous donne plus de pouvoir.
class A
{
public void myMethod()
{ /* ... */ }
}
class B extends A
{
public void myMethod()
{
super.myMethod(); // calling parent method
}
}
appelez super.myMethod ();
Utilisez le mot clé 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);
}
}
Vous voyez, vous redéfinissez l’une des méthodes de la classe de base. Par conséquent, si vous souhaitez appeler une méthode de classe de base à partir d’une classe héritée, vous devez utiliser super mot-clé dans la même méthode que la classe héritée.
super.baseMethod(params);
appelez les méthodes de base avec le mot clé super et transmettez les paramètres correspondants.
Si vous utilisez ces méthodes pour l’initialisation, utilisez les constructeurs de la classe A et passez le mot-clé super à l’intérieur du constructeur de la classe B.
Ou si vous souhaitez appeler une méthode de super classe à partir de la méthode de la sous-classe, vous devez utiliser le mot-clé super à l'intérieur de la méthode de la sous-classe, comme: 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);
}
}