如何返回类型界面

Reu*_*uyJ 2 java binary-tree interface

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

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

但是,其中之一需要异常返回接口类。(见下文)

@Override
public IBT getLeft() {

    return null;
}
Run Code Online (Sandbox Code Playgroud)

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

这比我做的简单吗?

返回接口有帮助吗?

fla*_*kes 5

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


例如。说我有接口Foo,两个实现FizzBuzz

public interface Foo { }

public class Fizz implements Foo {}
public class Buzz implements Foo {}
Run Code Online (Sandbox Code Playgroud)

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

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

public interface Bar {
    Foo getFoo();
    Foo getAnotherFoo();
}
Run Code Online (Sandbox Code Playgroud)

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

public class BarImpl implements Bar {
    @Override
    public Foo getFoo() {
        return new Fizz();
    }
    @Override
    public Foo getAnotherFoo() {
        return new Buzz();
    }
}
Run Code Online (Sandbox Code Playgroud)