如何返回类型接口

时间:2016-03-30 17:05:08

标签: java interface binary-tree

我目前正在开发一个带有二叉树的项目,并且已从存储库中获取用于打印树的代码。

长话短说,如果我可以在我的代码中实现一个界面,它将以我想要的格式打印输出。

然而,其中一个需要异常返回接口类。 (见下文)

@Override
public IBT getLeft() {

    return null;
}

这是获取左子树的方法,其中IBT是二叉树接口。

这比我做的更简单吗?

返回接口有什么帮助吗?

2 个答案:

答案 0 :(得分:4)

方法getLeft可以返回任何实现的类(如果它是一个接口)IBT或扩展IBT(如果它是一个类)。

例如。假设我有界面Foo,以及两个实施,FizzBuzz

public interface Foo { }

public class Fizz implements Foo {}
public class Buzz implements Foo {}

现在可以使用FizzBuzz类来代替Foo,因为它们实现了Foo接口。

现在说我有一个方法,要求我返回Foo个对象。

public interface Bar {
    Foo getFoo();
    Foo getAnotherFoo();
}

您无法直接创建Foo对象,因为它不是类。但是,您可以使用FizzBuzz类。

public class BarImpl implements Bar {
    @Override
    public Foo getFoo() {
        return new Fizz();
    }
    @Override
    public Foo getAnotherFoo() {
        return new Buzz();
    }
}

答案 1 :(得分:0)

interface Foo{void display();}

public class TestFoo implements Foo
{void display(){System.out.println(“Hello World”);}

public static void main(String[] args){Foo foo = new TestFoo();foo.display();}}

我认为这很有帮助。