java - 如何返回类型接口(interface)

标签 java interface binary-tree

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

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

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

@Override
public IBT getLeft() {

    return null;
}

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

这比我做的更简单吗?

在返回接口(interface)方面有什么帮助吗?

最佳答案

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


例如。假设我有接口(interface) Foo 和两个实现,FizzBuzz:

public interface Foo { }

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

FizzBuzz 类现在可以用来代替 Foo 因为它们实现了 Foo 接口(interface).

现在假设我有一个方法需要返回 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();
    }
}

关于java - 如何返回类型接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36315300/

相关文章:

java - 实现方法中的异常处理

java - 制作二叉搜索树

java - 如何在android中使用recyclerView传递id而不是位置

java - 使用子类的字段执行父方法

java - 在接口(interface)中存储查询以从数据库获取数据(Selenium webdriver + java)

c# - 接口(interface)继承多个接口(interface) : how is this handled by a C# compiler?

algorithm - 对 CLRS 随机构建的二叉搜索树证明中的声明感到困惑

c - 需要递减递归树函数中的计数器,但仅当我在树中移动 "upwards"时

java - Spring 中抽象类的构造函数依赖注入(inject)

java - 并发集合队列