Python オブジェクト指向(再)(3)
継承とは
- 既に作成したクラスとほとんど同じだが、少しだけ違うクラスを実装したいとき、既存のクラスのフィールドやメソッドを引き継いだ新しいクラスを作成することができる。
- このとき、既存のクラスのことを「スーパークラス」新たに作成したクラスのことを「サブクラス」と呼ぶ。
- サブクラスがベースクラスの機能を引き継ぐことを継承と呼ぶ。
実習(1)
問題(1)
Leader
クラスに部下の最大人数を表すmax_member
フィールドを追加しなさい。- 初期値は
3
となるようにコンストラクタに引数を加えなさい。 - 管轄している部下を表す辞書型のオブジェクト
members
をコンストラクタで定義しなさい。最初は空です。
問題(2)
Leader
クラスに部下を追加するメソッドadd_member
を作成しなさい。引数はEmployee
のmember
。このメソッドはmembers
フィールドに格納された部下の数がmax_member
未満であればmember
で指定された部下をフィールドmembers
に追加する。そうでない場合はエラーメッセージを出す。Leader
クラスから部下を削除するメソッドdel_member
を作成しなさい。引数は文字列のid
。このメソッドはmembers
フィールドに格納された部下のうち、社員番号にid
を持つものをフィールドmembers
から削除する。該当者がいなければエラーメッセージを出す。Leader
クラスのshow
メソッドを自分と部下の情報を出すようにしなさい。出力例は次の通り
社員名:管理職 太郎, 社員番号:x18-000, 部署:カスタマーサポート, 部下:2人
<部下リスト>
社員名:工大 太郎, 社員番号:x18-001
社員名:工大 次郎, 社員番号:x18-031
問題(3)
app.py
において、管理職を新たに作成し、部下を 3 人追加してその情報を表示するプログラムを作成しなさい。from leader import Leader
をapp.py
の先頭に追記する必要があります。