【问题标题】:How to call parent class method which has another parent class in Java?如何在Java中调用具有另一个父类的父类方法?
【发布时间】:2013-11-02 03:35:59
【问题描述】:

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

谢谢

【问题讨论】:

  • 假设你没有覆盖它,那么调用myMethod()有什么问题?
  • 您的环境听起来不同步,请刷新您的所有内容,然后重试。还要确保 myMethid 是公开的
  • 显然你没有把完整的代码,因为上面不会编译。确保 myMethod 在正确的范围内供 A 类查看。

标签: java swing parent extends


【解决方案1】:

嗯,我不确定,但你不是错过了返回类型吗?

尝试改变:

public myMethod(){//does conversions here}

与:

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

记住:

一般来说,方法的语法如下:

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

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

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

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

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

方法体:方法体包含定义方法作用的语句集合。

【讨论】:

    【解决方案2】:

    希望这会有所帮助 -

    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(); 
       }
    }
    

    【讨论】:

      【解决方案3】:

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

      再见, J

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 2011-05-22
        • 2019-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-14
        相关资源
        最近更新 更多