我目前正在开发一个二叉树项目,打印二叉树的代码已从存储库中获取。
长话短说,如果我可以在我的代码中实现一个接口(interface),它将以我想要的格式打印输出。
然而,其中一个需要接口(interface)类的异常返回。 (见下文)
@Override
public IBT getLeft() {
return null;
}
这是获取左子树的方法,其中IBT是二叉树接口(interface)。
这比我做的更简单吗?
在返回接口(interface)方面有什么帮助吗?
最佳答案
getLeft
方法可以返回任何实现IBT
(如果它是一个接口(interface))或扩展IBT
(如果它是一个类)的类).
例如。假设我有接口(interface) Foo
和两个实现,Fizz
和 Buzz
:
public interface Foo { }
public class Fizz implements Foo {}
public class Buzz implements Foo {}
Fizz
和 Buzz
类现在可以用来代替 Foo
因为它们实现了 Foo
接口(interface).
现在假设我有一个方法需要返回 Foo
对象。
public interface Bar {
Foo getFoo();
Foo getAnotherFoo();
}
您不能直接创建 Foo
对象,因为它不是类。但是,您可以改用 Fizz
和 Buzz
类。
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/