PHP 编程/继承
外观
< PHP 编程
继承是类的扩展。子类具有其父类的所有属性和方法。
继承是面向对象编程的核心概念之一。PHP 像其他支持继承的面向对象语言一样支持继承。
例如,宠物通常具有相似的特征,无论它们是什么类型的动物。宠物吃东西、睡觉,可以被命名。但是,不同类型的宠物也有自己的方法:狗会吠,猫会喵喵叫。以下是对此的实现
<?php
class Pet
{
var $_name;
function Pet($name)
{
$this->_name = $name;
}
function eat()
{
}
function sleep()
{
}
}
class Dog extends Pet
{
function bark()
{
}
}
class Cat extends Pet
{
function meow()
{
}
}
$dog = new Dog("Max");
$dog->eat();
$dog->bark();
$dog->sleep();
$cat = new Cat("Misty");
$cat->eat();
$cat->meow();
$cat->sleep();
?>
同样,我们可以对继承的类使用 PHP5 语法
<?php
class Pet
{
var $_name
public function __construct($name)
{
$this->_name = $name;
}
function eat()
{
}
function sleep()
{
}
}
?>
考虑两个人,一个是父母,一个是孩子。根据定义,孩子会从父母那里继承某些属性。因此,孩子可能拥有父母的所有特征,并且除了这些特征之外,孩子还可能拥有额外的特征。考虑到这个类比,考虑两个类 Person 和 programmer,基类有以下代码。
<?php
class Person{
var $legs=2;
var $head=1;
function walk(){
echo "Walk";
}
}
?>
Person 类有两个属性 $legs 和 $head,它有一个方法 walk。假设还有另一个类 programmer。programmer 类具有所有这些属性和方法,因此您可以再次定义它,或者您可以从 Person 类继承。因此,您可以将 programmer 类定义如下。
<?php
class programmer extends Person{
}
?>
请注意,我们要做的就是使用关键字 extends,然后后跟基类,然后基类的所有属性都将被继承,这意味着我们可以这样做。
<?php
$jedai = new programmer();
echo $jedai->legs;
echo $jedai->head;
echo $jedai->walk();
?>
最初,PHP 是一种简单的继承语言。但是,从 PHP 5.4.0 开始,一个名为 "trait" 的数据结构允许多重继承。
示例
<?php
trait MyTrait1
{
function Hello() {
print 'Hello';
}
}
trait MyTrait2
{
function World() {
print 'World';
}
}
class MyClasse1
{
use MyTrait1;
use MyTrait2;
function __construct() {
$this->Hello();
$this->World();
}
}
$Test = new MyClasse1;
?>