練習問題
10.8 練習問題
本章で習った内容を元に練習問題を解いてください。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① スーパークラスからは1つしかサブクラスを作成できない。
② 2つ以上スーパークラスを継承したサブクラスを作成できない。
③ サブクラスはスーパークラスの変数、メソッドを全て継承して利用することができる。
④ サブクラス内でスーパークラスと同じ定義のメソッドを記述することはできない。
⑤ 抽象クラスを継承したサブクラスは、抽象メソッドをオーバーロードしなくて良い。
問2 以下のクラスについて説明をした設問について○か×で答えなさい。
設問
① クラスXがクラスYのスーパークラスになる。
② クラスYにsという変数があるとコンパイルエラーになる。
③ クラスYに引数ありのコンストラクタが定義されている必要がある。
④ クラスYにnというメソッドが定義されている必要がある。
⑤ クラスYにmというメソッドが定義されていなくてもよい。
問3 以下に示すソースコードを実行した時の、結果①~⑧に入る文字を答えなさい。
ソースコード
ソース・フォルダー: /Desktop/Python基礎講座
ファイル名: 第10章.ipynb
アクセスURL: http://localhost:8888/notebooks/Desktop/Python基礎講座/第10章.ipynb
4 | print('[クラスSampleA]の',a,'のコンストラクタ') |
8 | def __init__(self,a,b): |
10 | print('[クラスSampleB]の',b,'のコンストラクタ') |
12 | sb1 = SampleB('a1','b1') |
13 | sb2 = SampleB('a2','b2') |
実行結果
1 | クラスSample[①]の[②]のコンストラクタ |
2 | クラスSample[③]の[④]のコンストラクタ |
3 | クラスSample[⑤]の[⑥]のコンストラクタ |
4 | クラスSample[⑦]の[⑧]のコンストラクタ |
問4 以下に示すクラスBooksを継承した以下の仕様をもつ、TextBooksクラスを作成しなさい。
ソースコード
ソース・フォルダー: /Desktop/Python基礎講座
ファイル名: 第10章.ipynb
アクセスURL: http://localhost:8888/notebooks/Desktop/Python基礎講座/第10章.ipynb
3 | def __init__(self,title='未定',price=0): |
15 | def setTitle(self,value): |
17 | print('この本のタイトルは' + self.__title +'にしました。') |
26 | def setPrice(self,value): |
28 | print('この本の価格は' + str(self.__price) + '円にしました。') |
作成仕様
Booksクラスを継承するTextBooksクラスを生成する
①コンストラクタ
Booksのコンストラクタを継承する。
__subjectというインスタンス変数があり、コンストラクタの引数subjectが代入されるものとする。
②メソッド
メソッド名:getSubject
デコレータ:@property
引数:selfのみ
戻り値:インスタンス変数__subject
概要:インスタンス変数__subjectの値を戻り値として返す。
メソッド名:setSubject
デコレータ:@getSubject.setter
引数:self、value
戻り値:なし
概要:
引数で受け取った教科情報をインスタンス変数__subjectに設定する。
「この本の教科をXXXXにしました。」と画面に出力処理を行う。
※XXXXは引数の値
問5 問4で作成したBooksクラスを抽象クラスに書き換え、抽象メソッドを付けたせるようソースコードを書き換えなさい。またTextBooksクラスで付け加えた抽象クラスをオーバーロードしなさい。
ソースコード
ソース・フォルダー: /Desktop/Python基礎講座
ファイル名: 第10章.ipynb
アクセスURL: http://localhost:8888/notebooks/Desktop/Python基礎講座/第10章.ipynb
作成仕様
【Books1クラス】
① クラス事態を抽象クラスに書き換える
② 以下の抽象メソッドを付け加える
メソッド名: showBook
引数: self
戻り値: なし
概要: pass
【TextBooks】
① 以下のメソッドを付け加える
メソッド名: showBook
引数: self
戻り値: なし
概要:以下の様に出力されるメソッドである。
※△△にはインスタンス変数__subject、××にはインスタンス変数__title、●●にはインスタンス変数__priceが代入される
NEXT>> 10.9 練習問題 解答