java - 为什么java找不到我的方法?

标签 java class object methods

我正在尝试围绕 Java 中的某些内容进行思考。当我将一个对象传递给另一个类的方法时,我是否可以不调用该对象类固有的任何方法?

下面的示例代码无法编译的原因是什么?

谢谢,

class a {
  public static void myMethod(Object myObj) {
    myObj.testing();
  }
}


class b {
  public void testing() {
    System.out.println ("TESTING!!!");
  }
}


class c {  
  public static void main (String[] args) {
    b myB = new b();    
    a.myMethod(myB);  
  }
}

编辑:我将 myMethod 中的参数保留为 Object 类型的原因是因为我希望能够传入各种对象类型,每个对象类型都有一个 testing() 方法。

最佳答案

如果您想使用testing() 方法传入各种对象,让每个对象都实现一个Testable 接口(interface):

public interface Testable
{
   public void testing()
}

然后让 myMethod() 进行 Testable

public static void myMethod(Testable testable)
{
  testable.testing();
}

编辑:澄清一下,实现一个接口(interface)意味着类保证有方法,但方法可以做任何它想做的事。所以我可以有两个类,它们的 testing() 方法做不同的事情。

public class AClass implements Testable
{
   public void testing()
   {
      System.out.println("Hello world");
   }
}

public class BClass implements Testable
{
   public void testing()
   {
      System.out.println("Hello underworld");
   }
}

关于java - 为什么java找不到我的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/620509/

相关文章:

java - 切换到新的 Activity/应用页面时应用崩溃

java - 如何从对象中获取值

java - java编码中swing中的数组索引越界错误

java - 如何访问 Java 中导入类的源代码?

c++ - 头文件中模板类实现的模板成员

java - 我的程序存在问题,涉及数组列表、缓冲读取器、方法以及对 Java 工作原理的总体遗忘

php - fatal error : Class 'Database' not found

python - 从 python 中获取容器/父对象

java - 如何使使用 '&' 指定的颜色代码的用户输入的消息在游戏中显示为彩色?

java - 如何修复 java.net.SocketException : Broken pipe?