第10章 オブジェクト指向構文 / 第2回 模擬試験

PHPの継承に関する次の記述のうち、誤っているものはどれか。

子クラスは`extends`キーワードで親クラスを継承する。
PHPのクラスは複数のクラスを同時に継承できる(多重継承)。 正解
子クラスから親クラスのメソッドを呼び出すには`parent::`を使う。
`final`が付与されたメソッドは、子クラスでオーバーライドできない。
解説
PHPのクラスは単一継承のみをサポートしており、`extends`で指定できる親クラスは1つだけです。複数の振る舞いをまとめて再利用したい場合は、インターフェースの複数実装(`implements`)やトレイト(`use`)を組み合わせます。 他の選択肢が正しい理由は次の通りです。 ・子クラスは`class Child extends Parent {}`のように`extends`キーワードで親クラスを継承します。 ・子クラスから、オーバーライドした親クラスのメソッドを呼び出すには`parent::メソッド名()`を使います。 ・`final`が付与されたメソッドは、子クラスで同名メソッドを定義して上書き(オーバーライド)することができません。 例: ``` trait Greetable { public function greet(): string { return 'Hello'; } } interface Loggable {} interface Cacheable {} class Service implements Loggable, Cacheable { use Greetable; // トレイトで複数の振る舞いを取り込む } ``` (参照: 独習PHP 第4版 第10章 オブジェクト指向構文 10.3節 継承 p.496〜510)

あわせて読みたい解説記事