继承是PHP5面象对象程序设计的重要特性之一,它是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和函数,而且可以重新定义或加进新数据和 函数,从而建立了类的层次或等级。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可 以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
举例:
比如你现在已经有一个“人”这个类了,这个 类里面有两个成员属性“姓名和年龄”以及还有两个成员方法“说话的方法和走路的方法“, 如果现在程序需要一个学生的类, 因为学生的也是人, 所以学生也有成员属性“姓名和年龄”以及成员方法“说话的方法和走路的方法“,这个时候你就可以让学生类来继承人这个类, 继承之后,学生类就会把人类里面的所有的属性都继承过来, 就不用你再去重新声明一遍这些成员属性和方法了, 因为学生类里面还有所在学校的属性和学习的方法,所以在你做的学生类里面有继承自人类里面的属性和方法之外在加上学生特有的”所在学校属性“和”学习的方 法“, 这样一个学生类就声明完成了, 继函我们也可以叫作“扩展”, 从上面我们就可以看出,学生类对人类进行了扩展, 在人类里原有两个属性和两个方法的基础上加上一个属性和一个方法扩展出来一个新的学生类。
1.父类
2.子类
子类可以继承父类的一切
特点:单继承,一个子类只能有一个父类,一个父类可以派生多个子类
class Ren { public $name; function Say() { echo $this->name."正在讲话"; } } class China extends Ren //子类对父类的继承 { } $c = new China(); $c->Say(); var_dump($c);
结果:
可拓展性:
class Ren { public $name; function Say() { echo $this->name."正在讲话"; } } class China extends Ren { function Run() //拓展父类 { echo $this->name."正在跑步"; } } $c = new China(); $c->Say(); $c->Run();
结果:
重写:override
class Ren { public $name; function Say() { echo $this->name."正在讲话"; } } class China extends Ren { //子类对父类的方法进行重写 function Say() { echo "你好"; } function Run() //拓展 { echo $this->name."正在跑步"; } } class America extends Ren { //子类对父类的方法进行重写 function Say() { echo "hello"; } }
结果:
继承及拓展:
class Ren { public $name; function Say() { echo $this->name."正在讲话"; } } class China extends Ren { //子类对父类的方法进行重写 function Say() { parent::Say(); //两个冒号 echo "你好"; } } $c = new China(); $c->Say();
结果: