0

所以我有 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();
   }
}

谢谢

4

3 回答 3

0

嗯,我不确定,但您是否缺少返回类型?

尝试改变:

public myMethod(){//does conversions here}

和:

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

记住:

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

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

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

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

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

参数:参数就像一个占位符。调用方法时,您将值传递给参数。这个值被称为实际参数或实参。参数列表是指方法的参数的类型、顺序和数量。参数是可选的;也就是说,方法可能不包含参数。

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

于 2013-10-23T18:02:41.417 回答
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(); 
   }
}
于 2013-10-23T19:20:14.037 回答
0

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

再见,J

于 2013-10-27T09:42:26.123 回答