所以我有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();
}
}
由于
答案 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()
?
再见 Ĵ