在Java中,如何调用基类';是否从派生类中的重写方法中删除?
我有两个Java类:B,它扩展了另一个类A,如下所示:在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。例如,请参见。
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
}
}