オブジェクト指向、抽象クラス、ポリモーフィズムの問題。
Q1
以下のようなクラスを作成し、処理を実現する。
■クラス:OfficeWorker(抽象クラス)
<フィールド>
・名前
<コンストラクタ>
・任意
<メソッド>
public void introduce(){自己紹介をする}
public abstract void work();//抽象メソッド
■クラス:OrdinaryOfficeWorker(スーパークラス:OfficeWorker)
<メソッド>(抽象メソッドの実装)
public void work(){普通のオフィスワーカーの働きぶりを書く}
■クラス:EliteOfficeWorker(スーパークラス:OfficeWorker)
<メソッド>(抽象メソッドの実装)
public void work(){エリートオフィスワーカーの働きぶりを書く}
■クラス:LazyOfficeWorker(スーパークラス:OfficeWorker)
<メソッド>(抽象メソッドの実装)
public void work(){怠惰なオフィスワーカーの働きぶりを書く}
■アプリケーションクラス
3人のオフィスワーカーインスタンスを作成し、処理を実現する。この際、3人の実クラスは3つのクラスからランダムに選ぶこと。(3人ともLazyになったりする可能性がある)
[実行例]
あなたの部下に3人配属されました 1人目の名前を入力してください>John はじめまして。私はJohnです。 2人目の名前を入力してください>Paul はじめまして。私はPaulです。 3人目の名前を入力してください>George はじめまして。私はGeorgeです。 誰の働きぶりを見にいきますか? 0・・・John 1・・・Paul 2・・・George 3・・・終了 番号を入力してください>0 Johnは仕事がはやい!しかも正確だ。 誰の働きぶりを見にいきますか? 0・・・John 1・・・Paul 2・・・George 3・・・終了 番号を入力してください>1 Paulは9時から5時まで働いている。遅刻や欠勤はない 誰の働きぶりを見にいきますか? 0・・・John 1・・・Paul 2・・・George 3・・・終了 番号を入力してください>2 GeorgeはPCの画面を即座に切り替えた。何をしていたのだろう。 誰の働きぶりを見にいきますか? 0・・・John 1・・・Paul 2・・・George 3・・・終了 番号を入力してください>3 アプリケーションを終了します。
コメント