如何使用Java接口的对象

时间:2017-03-22 22:21:30

标签: java class interface

我有这样的界面:

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(如果可能的话我想这样做),而不是接口对象,但我的作业需要它!并且返回接口对象的方法也是如此。问题是如何管理接口的对象?谢谢!

2 个答案:

答案 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);
}