Python 模擬試験

Python実践 模擬試験 第5回 問12・4章 Pythonのクラス(継承)

ポリモーフィズム

次のコードを実行したときの出力として、正しいものを1つ選べ。

class A:
    def f(self):
        return self.g()
    def g(self):
        return "A"
class B(A):
    def g(self):
        return "B"
print(B().f())
  1. A

    B

  2. B

    A

  3. C

    AB

  4. D

    None

正解と解説を見る

正解:A

メソッドは、実際のオブジェクトの型で決まる(動的な束縛)。親クラスのメソッドの中から、子クラスで上書きされたメソッドが呼ばれる。

順実行する行実行後の変数
1`class A:`—
2└ `def f(self):`—
3└ `def g(self):`—
4`class B(A):`—
5└ `def g(self):`—
6`print(B().f())`—
7└ `return self.g()`—
8└ `return "B"`—
結果実際の出力B

学習のポイント:テンプレートメソッドパターンの基本。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。