首页> 基础笔记 >PHP基础学习 >面向对象 面向对象
PHP面向对象类继承的应用
作者:小萝卜 2019-09-01 【 PHP 面向对象 】 浏览 1229
简介类继承的应用,子类与父类的属性与方法,继承已为大家所熟知的一个程序设计特性,PHP 的对象模型也使用了继承。继承将会影响到类与类,对象与对象之间的关系。 比如,当扩展一个类,子类就会继承父类的所有公有和保护方法。但是子类的方法会覆盖父类的方法。
类继承的应用
继承已为大家所熟知的一个程序设计特性,PHP 的对象模型也使用了继承。继承将会影响到类与类,对象与对象之间的关系。
比如,当扩展一个类,子类就会继承父类的所有公有和保护方法。但是子类的方法会覆盖父类的方法。
继承对于功能的设计和抽象是非常有用的,而且对于类似的对象增加新功能就无须重新再写这些公用的功能。
php继承的关键字:extends
格式:
[修饰符] class 子类名 extends 父类名
{
...
}
类的继承
PHP只支持单继承,不允许多重继承。一个子类只能有一个父类,不允许一个类直接继承多个类,但一个类可以被多个类继承。可以有多层继承,即一个类可以继承某一个类的子类,如类B 继承了类A,类C又继承了类B,那么类C也间接继承了类A,
class A{
....
}
class B extends A{
....
}
class C extends B{
....
}
例如:
<?php
//类的继承:extends
class A{
public $name="qq";
public $num = 20;
public function demo(){
echo "aaaaaaaaaaaaa<br/>";
}
}
//定义一个子类,子类会继承父类中的属性和方法
class B extends A{
}
//使用 子类
$b = new B();
echo $b->name;
echo $b->num;
$b->demo();
子类与父类的属性与方法
子类继承父类的所有内容,但父类中的private部分不能直接访问
子类中新增加的属性和方法是对父类的扩展
子类中定义的与父类同名的属性是对父类属性的覆盖,同名的方法也是对父类方法的覆盖
例如:
<?php
//子类的扩展
class A{
public function fun1(){
echo "class A fun1()...<br/>";
}
public function fun2(){
echo "class A fun2()...<br/>";
}
}
class B extends A{
//在子类中定义一个父类没有的方法,称扩展
public function fun3(){
echo "class B fun3()...<br/>";
}
//在子类中定义一个和父类一样的方法(方法覆盖,重写),称升级(更新)。
public function fun2(){
echo "class B fun2()....<br/>";
}
public function old_fun2(){
parent::fun2(); //调用被子类覆盖掉了的方法
}
}
很赞哦! (0)