我正在尝试围绕 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/