public class Tree<AnyType extends Comparable <? super AnyType>> {
private static class BinaryNode<AnyType>{}
private BinaryNode<AnyType> root;
public Tree(){}
public void makeEmpty(){}
public boolean isEmpty(){
/*code*/
}
public boolean contains(AnyType x){
/*code*/
}
public boolean contains(AnyType x, BinaryNode<AnyType> node){
/*code*/
}
}
我想创建一个接口,但BinaryNode是私有的:
public interface TreeFramework<AnyType> {
public void makeEmpty();
public boolean isEmpty();
public boolean contains(AnyType x);
public boolean contains(AnyType x, BinaryNode<AnyType> e); //fail
}
我一定要建立一个公共BinaryNode类?
让我们退一步:为什么要创建这样一个接口? BinaryNode的要点是:它是该实现的内部细节;显然不意味着在课外使用?那么,你的界面中第四种方法的目的是什么? – GhostCat
我想你误解了接口的使用。一般来说,你不应该在你的界面中需要'BinaryNode'。 –
@GhostCat我想知道是否存在类似'super'的调用。树主要是因为BinaryNode。 – zhanzezhu