2008-11-06 30 views

Respuesta

119

La palabra clave que está buscando es super. Ver this guide, por ejemplo.

+3

Parece que en C++ puede llamar a un método ancestro específico, pero no a Java, puede simplemente pasarlo por la cadena ... – rogerdpack

6

call super.myMethod();

111

Solo llámalo usando super.

public void myMethod() 
{ 
    // B stuff 
    super.myMethod(); 
    // B stuff 
} 
4

Utilice la palabra clave super.

14

super.MyMethod() debe llamarse dentro del MyMethod() del class B. Por lo que debe ser el siguiente

class A { 
    public void myMethod() { /* ... */ } 
} 

class B extends A { 
    public void myMethod() { 
     super.MyMethod(); 
     /* Another code */ 
    } 
} 
3
super.baseMethod(params); 

llamar a los métodos de base con súper palabra clave y pasar los respectivos params.

15

respuesta es la siguiente:

super.Mymethod(); 
super();    // calls base class Superclass constructor. 
super(parameter list);   // calls base class parameterized constructor. 
super.method();   // calls base class method. 
1
// 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); 
    } 
} 
2
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); 
    } 
} 
7

Estoy bastante seguro de que puede hacerlo usando el mecanismo de reflexión de Java. No es tan sencillo como usar super pero te da más poder.

class A 
{ 
    public void myMethod() 
    { /* ... */ } 
} 

class B extends A 
{ 
    public void myMethod() 
    { 
     super.myMethod(); // calling parent method 
    } 
} 
+0

Esto no muestra ningún reflejo de java en el código y es el mismo código que los otros . ¿Hay más en la respuesta? –

1

Si ur utilizando estos métodos para la inicialización y luego utilizar los constructores de la clase A y Pass Super palabra clave dentro del constructor de la clase B.

O si desea llamar a un método de superclase del método subclase luego debe usar la palabra clave super dentro del método de la subclase como: super.myMethod();

3

Sede, aquí está sustituyendo uno de los métodos de la clase base, por tanto, si se quiere llamar al método de la clase base de la clase heredada entonces usted tiene que utilizar palabra clave super en el mismo método de la clase heredada.

Cuestiones relacionadas