- Javaにおいて、「クラスの継承(inheritance)」 は、クラスやオブジェクトに次いで重要な概念と言える。
- ほとんどのオブジェクト指向言語はクラスの継承の考え方を導入している。
- 【継承とは?】: 継承とは、「生物の進化」のようなものと解釈しても良いかもしれない。
- たとえば生物の進化の「系統樹」のような(例えば以下のような図)を考えてみよう。この図は付属肢類から節足動物や脊椎動物が「継承され」分化していった様子を示している。このように、単純で基本的な機能をもった動物(スーパークラス)から複雑で多様な機能をもった動物(サブクラス)へと、 少しずつ進化していった。サブクラスはスーパークラスに比べて機能面(メソッド)ではより複雑(羽がついていて空を飛べる、とか)ですが、基本的な機能(動物)には変わりない(継承したら葉っぱがついていた、ということはナイ)。
- Java全パッケージの階層はここから参照できる
- 「スーパークラス(super class)」:クラスの親子の関係に関し、継承した新しいクラスを作る場合の元(先祖)になる親の方のクラス
- 「サブクラス(sub class)」:スーパークラスを継承して新しく定義される子(末裔)のクラス
- クラスを継承すると、親の機能(性質)は全て子に伝えられる。 したがってサブクラスの方がスーパークラスよりも豊かで複雑な機能を備えている。
- 例:java.ioパッケージにおけるInputStream抽象クラスは、バイト入力ストリームを表現するすべてのクラスのスーパークラスである。このクラスから継承されたサブクラスFileInputStreamは、親であるスーパクラスより機能が大きい(ファイルストリームへの接続機能を有する、など)。抽象クラスについては後述。
2003年10月21日 6:19 更新