Previous | Next | Trail Map | Writing Java Programs | オブジェクト、クラス、インタフェース


サブクラス、スーパークラス、継承

Java では、他のオブジェクト指向のプログラム言語のように、クラスは他のクラスから派生する。 派生クラス(他のクラスから派生しているクラス)はサブクラスと呼ばれる。 派生したクラスはスーパークラスと呼ばれる。

「サブクラスとスーパークラスの PENDING: picture 」

実際 Java では、すべてのクラスがあるクラスから派生している。生じている。 ということは、「いったいそれらすべてのクラスが何処から始まるのか?」と聞きたくなる。すべてのクラスが派生する最高のクラスは、 java.lang で定義される Object クラスであり、 Object クラスは階層の親クラスである。

「クラス階層の PENDING: picture 」

サブクラスは、そのスーパークラスから変数とメソッドのかたちで状態と振る舞いを継承する。 サブクラスは、そのスーパークラスから継承する項目を使用することができる。あるいはサブクラスを変更するか、あるいはオーバーライドすることができる。 これにより、階層を降りていくにつれて、クラスはよりいっそう専門的になる。


定義: サブクラスは別のクラスから生じるクラスである。 サブクラスはその祖先から状態と振る舞いを継承する。 スーパークラスは、その上位クラスと同様、クラスの直接の祖先を参照する。


継承とは何か?(in the Writing Java Programs trail)を参照のこと。

サブクラスの作成

別のクラスのサブクラスを作成するためには、クラス宣言で extends 節を使用する。 (クラスの宣言 では、クラス宣言のすべての構成要素について説明する。) サブクラスとして、クラスはそのスーパークラスからメンバ変数とメソッドを継承する。 クラスは変数を隠したり、あるいはそのスーパークラスから継承するメソッドをオーバーライドするために選択することができる。

Final クラスとメソッドの書き方

セキュリティあるいは設計上の理由のために、クラスをサブクラス化したくないことがある。 あるいは、クラス内の特定のメソッドがオーバーライドされないようにしたいことがある。 Java では、クラスあるいはメソッドにfinalとマークするにより、これらの目標のいずれかに対応することができる。

Abstract クラスとメソッドの書き方

また一方では、サブクラス化されるためだけに書かれているインスタンス化されていないクラスがある。 これらのクラスは abstract クラスと呼ばれ、しばしば抽象メソッドを含む。

java.lang.Object クラス

Java 環境でのすべてのオブジェクトが java.lang.Object から直接あるいは間接的に継承する。 この節では、起動したりオーバーライドを望む、java.lang.Objectの興味深いメソッドについて解説する。


Previous | Next | Trail Map | Writing Java Programs | オブジェクト、クラス、インタフェース