继承
一、
简单理解:
某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息。(extends)
Class jizuidongwu{
public $prop1 = "有脊椎";
function show1(){
echo "<br />特征:" . $this->prop1;
}
}
Class human extends jizuidongwu{
public $prop2 = "两脚走路";
function show2(){
echo "<br />特征:" . $this->prop1;
echo "<br />特征:" . $this->prop2;
}
}
$person1 = new human();
$person1->show2();
二、基本概念
继承:一个类从另一个已有的类获得其特性,称为继承。
派生:从一个已有的类产生一个新的类,称为派生。
继承和派生,其实只是从不同的方向(角度)来表述,本质上就是一个事情。
父类/子类:已有类为父类,新建类为子类。父类也叫“基类”,子类也叫“派生类”
单继承:一个类只能从一个上级类继承其特性信息。PHP和大多数面向对象的语言都是单继承模式。C++是多继承。
扩展:在子类中再来定义自己的一些新的特有的特性信息(属性,方法和常量)。没有扩展,继承也就没有意义了
三、访问(权限)修饰符
在类中的成员,通常都可以在前面加上以下3个修饰符:
public:公共的,共有的,公开的
protected:受保护的
private:私有的,
范围 |
本类内 |
继承关系类内 |
类外 |
public |
可以 |
可以 |
可以 |
protected |
可以 |
可以 |
不可以 |
private |
可以 |
不可以 |
不可以 |
parent代表父类
对比:self代表“本类”(自己当前类)
parent通常用于在子类中调用父类的成员的时候使用,多数通常就是使用父类的“静态类”成员。
——因为parent代表的类,而非对象。