类的继承要通过extends来实现
class 子类名 extends 父类名 {…………}
<?php
class Website{
public $name, $url, $title;
public function __construct(){
echo '--基类中的构造函数--';
}
public function demo(){
echo '--基类中的成员方法';
}
}
class ClassOne extends Website{
}
class ClassTwo extends Website{
public function __construct(){
echo '--子类中的构造函数--';
}
}
$object = new ClassOne();
$object->demo();
/*结果为:--基类中的构造函数--
--基类中的成员方法*/
$object2 = new ClassTwo();
$object2->demo();
/*结果为:--子类中的构造函数--
--基类中的成员方法*/
?>
<?php
class Website{
public $name, $url, $title;
public function __construct(){
echo '--基类中的构造函数--';
}
protected function demo(){
echo '--基类中的成员方法';
}
}
class ClassOne extends Website{
}
class ClassTwo extends Website{
public function __construct(){
echo '--子类中的构造函数--';
}
public function test(){
$this->demo();
}
}
$object = new ClassOne(); /*结果为:--基类中的构造函数--*/
//$object->demo(); //在子类中调用父类使用protected修饰的成员方法会报错
$object2 = new ClassTwo();
$object2->test();
/*结果为:--子类中的构造函数--
--基类中的成员方法- */
?>
<?php
class Website{
public $name, $url, $title;
public function __construct(){
echo '--基类中的构造函数--';
}
private function demo(){
echo '--基类中的成员方法';
}
}
class ClassTwo extends Website{
public function test(){
$this->demo();
}
}
$object2 = new ClassTwo();
$object2->test();
/*结果为: --基类中的构造函数--
PHP Fatal error: Uncaught Error: Call to private method Website::demo() from context 'ClassTwo' in 5_php_extends_private.php:14*/
/*出错原因: 子类中调用父类中使用private关键字修饰的成员,程序会报错并终止。*/
?>