我有这样的界面:
public interface foo {
public int addsomething (foo l) {}
public foo dosomething() {}
}
public class abc implements foo {
public abc(.....) {}
public int addsomenthing (foo l) {}
public foo dosomething() {}
}
如何实现输入中具有接口对象的方法?可能吗?我的意思是我必须使用abc的构造函数实现addomething(如果可能的话我想这样做),而不是接口对象,但我的作业需要它!并且返回接口对象的方法也是如此。问题是如何管理接口的对象?谢谢!
答案 0 :(得分:0)
我认为您的意思是使用匿名类。
编辑: 在阅读您对您的问题的评论后,我认为这将是您想要的:
interface Foo
{
public int addsomething(Foo l);
public Foo dosomething();
}
class Abc implements Foo
{
@Override
public int addsomething(Foo l)
{
return 0;
}
@Override
public Foo dosomething()
{
return null;
}
}
public class Test
{
public static void main(String[] args)
{
Foo foo = new Abc();
Abc abc = new Abc();
test(foo);
test(abc);
}
private static void test(Foo foo)
{
foo.dosomething();
}
}
在这里你可以看到一个函数可以将接口作为参数,实现该接口的类的实例可以作为函数调用的输入。
答案 1 :(得分:0)
您可能想要这样做:
public interface foo {
public int addsomething (foo l) {}
public foo dosomething() {}
}
public class abc implements foo {
public abc(.....) {}
public int addsomething (foo l) {
//do something with foo object after class "MyOtherClass" has invoked
addsomething method.
}
public foo dosomething() {}
MyOtherClass myOtherClass = new MyOtherClass(abc abcObject);
}
//my other class
public class MyOtherClass{
abc abcObject;
//my constructor
public MyOtherClass(abc abcObject){
this.abcObject=abcObject;
}
//call method from class implementing interface
abcObject.addsomething(FooObject);
}