我有一个包含void doThis();
的界面。我在Main
课程中实现了界面,并自动将public void doThis() { ... }
添加到了我的班级。如果我在Second
课程中,如何在doThis()
中调用Main
?
答案 0 :(得分:3)
public void methodInSecond() {
ThingInterface ti = new Main();
ti.doThis();
}
答案 1 :(得分:3)
如果我理解你的问题,那么
new Main().doThis()
答案 2 :(得分:3)
当您实现一个接口时,您正在创建一个类。接口由该类上的实例方法实现。
要在类上调用实例方法,请实例化该类,并像调整任何其他实例方法一样调用它:
Main m = new Main();
m.doThis();
根据我的示例代码,您可能希望将Main
的实例传递到Second
,而不是在Second
内创建实例。您可以通过界面而不是通过具体类类型传递此信息:
public class Second
{
public void doSomething(SomeInterface si)
{
si.doThis();
// other code here...
}
}
// Some code outside those classes, that uses both classes...
Second s = new Second();
SomeInterface si = new Main();
s.doSomething(si);
答案 3 :(得分:0)
new Main(").doThis();
会奏效。如果您希望对象重复使用,请执行此操作
InterfaceName obj=new Main();
obj.doThis();
//other things you do with the obj object
这里要记住的是,即使你不能创建界面对象,你也可以使用界面参考。