PHP 继承
-
PHP 继承
PHP类定义可以选择使用extends
子句从父类定义继承。语法如下class Child extends Parent { 类代码块 }
继承的效果是子类(或子类或派生类)具有以下特征- 自动拥有父类的所有成员变量声明。
- 自动具有与父项相同的所有成员函数,(默认情况下)将以与父类中的函数相同的方式工作。
以下示例继承Books类并根据需求添加更多功能。
尝试一下class Novel extends Books { var $publisher; function setPublisher($par){ $this->publisher = $par; } function getPublisher(){ echo $this->publisher. "<br />"; } }
现在,除了继承的函数之外,Novel类还保留了两个额外的成员函数。 -
PHP 函数重载
子类中的函数定义会覆盖父类中具有相同名称的定义。在子类中,我们可以修改从父类继承的函数的定义。在下面的示例中,将重写getPrice和getTitle函数以返回一些值。
尝试一下function getPrice() { echo $this->price . "<br/>"; echo "我是来自子类的方法1<br/>"; } function getTitle(){ echo $this->title . "<br/>"; echo "我是来自子类的方法1<br/>"; }
现在,除了继承的函数之外,Novel类还保留了两个额外的成员函数。 -
调用父构造函数
我们不是为子类编写一个全新的构造函数,而是通过显式调用父代的构造函数来编写它,然后在实例化子类时执行必要的操作。这是一个简单的例子
尝试一下<?php class Name { var $_firstName; var $_lastName; function __construct($first_name, $last_name) { $this->_firstName = $first_name; $this->_lastName = $last_name; } function toString() { return $this->_lastName ." " .$this->_firstName; } } class NameSub1 extends Name { var $_middleInitial; function __construct($first_name, $middle_initial, $last_name) { parent::__construct($first_name, $last_name); $this->_middleInitial = $middle_initial; } function toString() { return parent::toString() . " " . $this->_middleInitial; } } $sub = new NameSub1('Jim','Green','Alex'); echo $sub->toString();
现在,除了继承的函数之外,Novel类还保留了两个额外的成员函数。