我有两个Java类:B和A,其中B继承了另一个类A,代码如下:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
我想从B.myMethod()
调用A.myMethod()
。 我来自C++世界,我不知道在Java中如何做这个基本的事情。
我有两个Java类:B和A,其中B继承了另一个类A,代码如下:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
我想从B.myMethod()
调用A.myMethod()
。 我来自C++世界,我不知道在Java中如何做这个基本的事情。
只需使用 super 进行调用。
public void myMethod()
{
// B stuff
super.myMethod();
// B stuff
}
回答如下:
super.Mymethod();
super(); // calls base class Superclass constructor.
super(parameter list); // calls base class parameterized constructor.
super.method(); // calls base class method.
super.MyMethod()
应该在 B类
的 MyMethod()
方法内被调用。因此应该如下:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() {
super.MyMethod();
/* Another code */
}
}
调用super.myMethod();
我相信您可以使用Java反射机制来实现。虽然不像使用super一样直接,但它会为您提供更多的功能。
class A
{
public void myMethod()
{ /* ... */ }
}
class B extends A
{
public void myMethod()
{
super.myMethod(); // calling parent method
}
}
super.baseMethod(params);
使用super关键字调用基本方法,并传递相应的参数。
在这里,您正在覆盖基类的一个方法,因此,如果您想从派生类中调用基类的方法,则必须在继承类的同一方法中使用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);
}
}