如何在Java中调用另一个父类的父类方法?

时间:2013-10-23 17:47:51

标签: java swing parent extends

所以我有A类扩展B类,B类扩展JInternalFrame,B有方法myMethod(在我的例子中myMethod将订单系统转换为十进制数)。现在我想在类A的方法中使用来自类B的myMethod,但是当我尝试调用super.myMethod()时,它表示找不到myMethod(),当我看到后面显示的所有方法时键入“super。”,方法都是JTable方法(如果我控制从下拉列表中单击任何方法,我将转到JTable.java)。

我已经尝试在A类中创建一个B然后使用B.myMethod(),这有效但是有没有办法在A类中调用myMethod而不用B?

public class B extends JInternalFram{ 
   constructor(){
   }
   public myMethod(){
      //does conversions here
   }
}


public class A extends B{ 
   constructor(){
   }
   public anotherMethod(){
      //needs to use b.myMethod();
   }
}

由于

3 个答案:

答案 0 :(得分:0)

嗯,我不确定,但你不知道返回类型吗?

尝试更改:

public myMethod(){//does conversions here}

使用:

public void myMethod(){//does conversions here}

记住:

通常,方法具有以下语法:

modifier returnValueType methodName(list of parameters) {
  // Method body;
}

修饰符:修饰符是可选的,它告诉编译器如何调用该方法。这定义了方法的访问类型。

返回类型:方法可以返回值。 returnValueType是方法返回的值的数据类型。某些方法在不返回值的情况下执行所需的操作。在这种情况下,returnValueType是关键字void。

方法名称:这是方法的实际名称。方法名称和参数列表一起构成方法签名。

参数:参数类似于占位符。调用方法时,将值传递给参数。该值称为实际参数或参数。参数列表是指方法参数的类型,顺序和数量。参数是可选的;也就是说,方法可能不包含任何参数。

方法体:方法体包含一组语句,用于定义方法的作用。

答案 1 :(得分:0)

希望这有帮助 -

public class B extends JInternalFram{ 
   B(){
   }
   public void myMethod(){
      //does conversions here
      System.out.println("Inside myMethod of B");
   }
}


public class A extends B{ 
   A(){
   }
   public void anotherMethod(){
      //needs to use b.myMethod();
      myMethod(); 
   }
}

答案 2 :(得分:0)

首先,在两个方法中使用void作为返回类型,否则JVM认为它是构造函数。回到主要问题,为什么不使用super.myMethod()

再见 Ĵ