トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Javaプログラミング(2005/11/10)

Javaプログラミング 第8回 2005/11/10

 継承

これまでの演習で作成したプログラムを見ると、共通した性質や動作を定義している。これらの共通した性質や動作をまとめて、抽象化したクラスを作ることができる。

この抽象化したクラスはこれまでのクラスと同じものや、抽象クラスインターフェースがあります。

抽象化して作られたクラススーパークラス、抽象化の基になっているクラスサブクラスという。

 演習1

  1. これまでに作成したクラスからインターフェースを作る。(Eclipseの機能を使うと簡単)
  2. 作成したインターフェースを基に既存のクラスを書き換える。

 演習2 社長命令起立

ある会社の社員をモデルに継承インターフェースの機能を確認する。

会社には様々な分類の社員がいる。その社員に対して社長が「起立しろ」と命令すると社員の分類によって動作が異なることを表現する。

  1. 会社員を表すインターフェース、Shainを作る。このインターフェースには起立する動作を示すメソッドstandup()のみが記されている。
  2. Shainクラスを実装するクラスとして、平社員(Hira)、担当者(Tanto)、主任(Shunin)、部長(Bucho)を作る。

クラスではShainクラスのメソッドstandup()を実装する。それぞれの社員の実際の動作は次の通り。ここではこの動作を示す文を単に表示するだけにする。

分類 動作
平社員 緊張して起立する。
担当者 素早く起立する
主任 普通に起立する
部長 だるそうに起立する

社長クラス(Shacho)にはmain()メソッドがあり、そこでそれぞれの社員のオブジェクトを作り、それぞれの社員に起立するように指示する。

Hira hira1 = new Hira();
hira1.standup();

 演習3

社長が社員に基本給を教えると、給料がいくらかを答えるようにする。

  • この動作はgetKyuryo()という名前のメソッドにする。
  • 基本給はメソッドの引数に与える。
  • メソッドは計算した給料を戻り値にする。

このメソッドはインターフェースに定義する。各社員の給料は次のように計算する。

分類 給料
平社員 基本給×1
担当者 基本給×1+10
主任 基本給×1+100
部長 基本給×2

[Javaプログラミング(C219-6)]