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