[英]How to return type Interface
我目前正在研究一个带有二叉树的项目,并且已经从存储库中获得了用于打印树的代码。
长话短说,如果我可以在我的代码中实现一个接口,它将以我想要的格式打印出来。
然而,其中之一需要接口类的异常返回。 (见下文)
@Override
public IBT getLeft() {
return null;
}
这是获取左子树的方法,其中 IBT 是二叉树接口。
这比我制作的更简单吗?
返回接口有什么帮助吗?
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();
}
}
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();}}
我认为这很有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.