講義編4
「クラスと継承」
 
← 前  :  次 →

基本知識の おさらい

たとえば「木」というクラスがあったとすると,その具体的な例には 松や竹,梅などが挙げられます.この「松」などがインスタンスです.

クラスは,「属性」と「動作」(振る舞い)から構成されます. たとえば「自動車」クラスを例に取ります.

自動車
このように表現することができます.

しかし,いま作成した「自動車」クラスは まだまだ抽象的な表現に見えます. つまり汎用性があります. 「自動車」クラスを「エンジン付き乗り物」という名前に変えてしまいましょう. この「エンジン付き乗り物」クラスに「4輪」という属性を付ければ「自動車」に, 「2輪」という属性ならば「オートバイ」クラスに変化します. 変化という言い方はおかしいですが,これが クラスの継承 ということになります.

「継承」は,UML(Unified Modeling Language)では「汎化」と「特化」の関係 として扱われています.もちろん Java では「親クラス」「子クラス」です. 英語で言うなら「Super class」と「Sub class」.

 

クラス定義は,いかに同じ性質を括り出せるかが1つのポイントです. いつもいつも考える必要はありませんが,クラス化する対象物があったとしたら その「もの」をある程度「汎化」して1つのクラスを定義します. そのクラスを基に肉付けしていき,目的のクラスを作成しましょう.
上の文章の「基に肉付け」は,「継承して特化」と言い換えられます.

こうすることで,継承元となった親クラスは次に使いまわせるかもしれません. 汎用性があるとは,再利用できる可能性が高いということです.
これがオブジェクト指向の原点になります.


表紙へ戻る