在Java中,如何调用基类';是否从派生类中的重写方法中删除?

在Java中,如何调用基类';是否从派生类中的重写方法中删除?,java,inheritance,methods,polymorphism,Java,Inheritance,Methods,Polymorphism,我有两个Java类:B,它扩展了另一个类A,如下所示: class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { /* Another code */ } } 我想从B.myMethod()调用A.myMethod()。我来自,我不知道如何用Java做这个基本的事情。调用super.myMethod() 您要查找的关键字是super。例如,请参见。

我有两个Java类:B,它扩展了另一个类A,如下所示:

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

class B extends A {
    public void myMethod() { /* Another code */ }
}

我想从
B.myMethod()
调用
A.myMethod()
。我来自,我不知道如何用Java做这个基本的事情。

调用super.myMethod()

您要查找的关键字是
super
。例如,请参见。

只需使用super调用它即可

public void myMethod()
{
    // B stuff
    super.myMethod();
    // B stuff
}
使用关键字。

super.MyMethod()
应在
B类的
MyMethod()
内调用。所以应该是这样的

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

class B extends A {
    public void myMethod() { 
        super.MyMethod();
        /* Another code */ 
    }
}
使用super关键字调用基本方法并传递相应的参数。

答案如下:

super.Mymethod();
super();                // calls base class Superclass constructor.
super(parameter list);          // calls base class parameterized constructor.
super.method();         // calls base class method.

我非常确信,您可以使用Java反射机制来实现这一点。它不像使用super那样简单,但它给了你更多的力量

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

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

如果使用这些方法进行初始化,则使用类A的构造函数并在类B的构造函数内传递super关键字

或者,如果要从子类方法调用超类的方法,则必须在子类方法内使用super关键字,如:
super.myMethod()

> P>参见,这里您是基类的方法之一,因此如果您喜欢从继承类调用基类方法,那么在继承类的相同方法中必须使用<强>超/强>关键字。

看起来像C++中可以调用特定的祖先方法,而不是java,您可以将其传递到链上……这不会在代码中显示任何java反射,并且与其他代码相同。答案还有更多吗?
// 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);
    }
}
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);
    }
}
class A
{
    public void myMethod()
    { /* ... */ }
}

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