ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

Java のプログラム (13)

2011-10-08 00:13:41 | 暮らし
記事一覧


2011-11-10 全面的に修正

P33: 抽象クラス
//-------------------------------------------
//Node.java
package lib;
abstract class Node0{
    //Node0 p, l, r; <-- Node を指せない.
    int d; //data_id
    //Node0(){p = l = r = null; d = 0;}
}
public class Node extends Node0{
    Node p, l, r; //parent, left, right
    String[] s; //str_data
    public Node(int d0){
        p = l = r = null; s = null; d = d0;
    }
]
//-------------------------------------------
//TreeS
  P31-1/2 と同じ
//-------------------------------------------
//Main.java
  P31-2/2 と同じ
//-------------------------------------------

 
「Javaのプログラム (10)」で基本クラス Node を定義し

・Node は継承しません.Node(int, String[]) で作成し
  たインスタンスは d を主キーとするレコードの実装を
  想定していますが,使用例は省略します.

と述べましたが,これは Java では Tree と Node の双方
を継承すること(多重継承)ができないためです.インタ
ーフェイスの説明のために Node も無理に派生クラスにし
た失敗作が P33 です.p, l, r は自分のクラスへの参照
とした再帰的な宣言にはなっていないようです(※).抽象
クラスの Node0 はお粗末過ぎますが我慢してください.
※ 開発環境は最良の参考書です.分からないことはコン パイルして調べましょう.(「自分で調べるCのポインタ」) [3-4] Java 入門 | 抽象メソッドと抽象クラス http://msugai.fc2web.com/java/abstract.html [3-4] Java 入門 | インタフェース http://msugai.fc2web.com/java/interface.html [3-5] Java 入門 | コンストラクタは継承されない http://msugai.fc2web.com/java/overrideConstructor.html


最新の画像もっと見る

コメントを投稿