我目前正在开发一个带有二叉树的项目,并且已从存储库中获取用于打印树的代码。
长话短说,如果我可以在我的代码中实现一个界面,它将以我想要的格式打印输出。
然而,其中一个需要异常返回接口类。 (见下文)
@Override
public IBT getLeft() {
return null;
}
这是获取左子树的方法,其中IBT是二叉树接口。
这比我做的更简单吗?
返回接口有什么帮助吗?
答案 0 :(得分:4)
方法getLeft
可以返回任何实现的类(如果它是一个接口)IBT
或扩展IBT
(如果它是一个类)。
例如。假设我有界面Foo
,以及两个实施,Fizz
和Buzz
:
public interface Foo { }
public class Fizz implements Foo {}
public class Buzz implements Foo {}
现在可以使用Fizz
和Buzz
类来代替Foo
,因为它们实现了Foo
接口。
现在说我有一个方法,要求我返回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();
}
}
答案 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();}}
我认为这很有帮助。