2

エラーが表示されます: BST は抽象的ではなく、 TreeGT の抽象メソッド height() をオーバーライドしません。それが何を意味するのか、どうすれば解決できるのかを理解するための助けが必要です。

ファイル TreeGT.java には、次のコードがあります。

public interface TreeGT<E> {
    public boolean insert(E item);
    public boolean delete(E item);
    public boolean find(E item);
    public int height();
}

ファイル BST.java には、次のコードがあります。

import java.util.*;

public class BST<E extends Comparable<E>> implements TreeGT<E> {

private Node root; //Only root by itself
public BST() {
    root = null;
    }

private static class Node {
    Comparable data; 
    int height; //Height of node 
    int size; //Number of nodes in tree
    private Node left; //Left subtree   
    private Node right; //Right subtree 

    Node (Comparable data) { //Constructor for tree 
        this.data = data;
        this.height = 0; //Height zero
        this.size = 1; //Root counts
        this.left = null; //No left leafs
        this.right = null; //No right leafs
        }
    }

    public void makeEmpty() {
        root = null;
        }

    public boolean isEmpty() {
        return root == null;
        }       

    public int size() {
        if (isEmpty())
            throw new Exception("Tree is empty");
        return root == null ? 0 : root.size;
        }

public boolean insert(E item) { 
return false;
}

public boolean delete(E item) { 
return false;
}

public boolean find(E item) { 
return false;
}

}

PS私はJavaで数日しかプログラミングしていないので、できるだけ単純で率直に話す必要があります. また、BST を作成しようとしています。私は正しい道を進んでいると思いますよね?

4

1 に答える 1

4

インターフェイスは、未定義の (つまり、抽象) メソッドのコレクションです。インターフェイスを実装する場合 ( で行いますimplements treeGT)、これらのメソッドすべてに定義を提供する必要があります。したがって、クラスは treeGT を実装し、height() は treeGT で定義された抽象メソッドの 1 つであるため、クラスでそのメソッドを定義する必要があります。

つまり、追加する必要があります

public int height(){
    //do something
}
于 2013-03-03T01:51:07.727 に答える