第10章 オブジェクト指向構文 / 第3回 模擬試験
PHPのオーバーライドに関する次の記述のうち、正しいものはどれか。
子クラスで親クラスと同名のメソッドを定義すると、親のメソッドが上書きされる。
正解
オーバーライドされた親クラスのメソッドは、子クラスから絶対に呼び出せない。
`final`を付けたクラスは、そのクラスのメソッドだけをオーバーライド禁止にする。
オーバーライドは、プロパティに対してのみ行うことができる。
解説
子クラスで同名メソッドを定義すると親のメソッドは上書き(オーバーライド)されます。`parent::method()`で親のメソッドを呼び出すことは可能です。`final`をクラスに付けると継承自体が禁止されます。(参照: 独習PHP 第4版 第10章 オブジェクト指向構文 10.3.2節 メソッドのオーバーライド p.500〜504)