常见问题3-8 类的继承
对于初学者来说,经常犯如下错误:
问题 1:一个子类继承多个基类。
PHP 只支持单继承,即有且只有一个父类,不能从多个基类继承。
问题 2:子类继承父类声明为 private 的成员。
声明为 private 的成员只能在类的内部访问,为类私有成员。
问题 3:从声明为 final 的类继承。
声明为 final 的类为最终类,不能被其他类继承。
问题 4:对父类中声明为 final 的方法进行重写。
声明为 final 的方法不能再被继承重写。如:
<?php
abstract class Person{
abstract function sayHello();
}
class Student extends Person{
private $name;
public function __construct($myName){
$this->name=$myName;
}
final public function sayHello(){ //声明为 final
echo "hello,my name is " . $this->name;
}
}
class Software_Student extends Student{
public function sayHello(){ //对声明为 final 的 sayHello 进行重写
echo "override Student->sayHello()!";
}
}
?>
此时,程序在编译时将给出如下错误: