Java 如何返回类型接口
我目前正在进行一个二叉树项目,从存储库中获取了打印树的代码 长话短说,如果我能在代码中实现接口,它将以我想要的格式打印出来 但是,其中之一需要异常返回接口类。(见下文) 这是获取左子树的方法,其中IBT是二叉树接口 这比我做的简单吗Java 如何返回类型接口,java,interface,binary-tree,Java,Interface,Binary Tree,我目前正在进行一个二叉树项目,从存储库中获取了打印树的代码 长话短说,如果我能在代码中实现接口,它将以我想要的格式打印出来 但是,其中之一需要异常返回接口类。(见下文) 这是获取左子树的方法,其中IBT是二叉树接口 这比我做的简单吗 返回接口是否有帮助?方法getLeft可以返回实现IBT(如果是接口)或扩展IBT(如果是类)的任何类 比如说。假设我有接口Foo,还有两个实现,Fizz和Buzz: public interface Foo { } public class Fizz impl
返回接口是否有帮助?方法
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();
}
}
我认为这很有帮助。您需要从实现接口的类返回一个对象。
TestFoo#display
需要是public
,否则在分配较弱的访问权限时会出现编译错误。您还应该使用@Override
注释设法解决我的问题,导致我悲伤的是我的BT中的节点是二叉树的一个子类。我把他们分成了各自的班级,一切都很好。谢谢大家
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();}}