Javaプログラミング 第8回 2005/11/10
継承
これまでの演習で作成したプログラムを見ると、共通した性質や動作を定義している。これらの共通した性質や動作をまとめて、抽象化したクラスを作ることができる。
この抽象化したクラスはこれまでのクラスと同じものや、抽象クラス、インターフェースがあります。
抽象化して作られたクラスをスーパークラス、抽象化の基になっているクラスをサブクラスという。
演習1
演習2 社長命令起立
ある会社の社員をモデルに継承やインターフェースの機能を確認する。
会社には様々な分類の社員がいる。その社員に対して社長が「起立しろ」と命令すると社員の分類によって動作が異なることを表現する。
- 会社員を表すインターフェース、Shainを作る。このインターフェースには起立する動作を示すメソッドstandup()のみが記されている。
- Shainクラスを実装するクラスとして、平社員(Hira)、担当者(Tanto)、主任(Shunin)、部長(Bucho)を作る。
各クラスではShainクラスのメソッドstandup()を実装する。それぞれの社員の実際の動作は次の通り。ここではこの動作を示す文を単に表示するだけにする。
分類 | 動作 |
---|---|
平社員 | 緊張して起立する。 |
担当者 | 素早く起立する |
主任 | 普通に起立する |
部長 | だるそうに起立する |
社長クラス(Shacho)にはmain()メソッドがあり、そこでそれぞれの社員のオブジェクトを作り、それぞれの社員に起立するように指示する。
Hira hira1 = new Hira(); hira1.standup();
演習3
社長が社員に基本給を教えると、給料がいくらかを答えるようにする。
このメソッドはインターフェースに定義する。各社員の給料は次のように計算する。
分類 | 給料 |
---|---|
平社員 | 基本給×1 |
担当者 | 基本給×1+10 |
主任 | 基本給×1+100 |
部長 | 基本給×2 |