27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]
E-mail:mzze@163.com
Q Q:32362389
W X:xiaomi168527
27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]
大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]
E-mail:97157726@qq.com
Q Q:97157726
面向对象三大特征: 封装 继承 多态
语法
class 子类 extends 父类{ }
1. 继承使得代码具有层次结构
2. 子类继承了父类的属性和方法,实现了代码的可重用性。
3. 使用extends关键字实现继承
4. 父类和子类是相对的
案例
<?php //父类 class Person { public function show() { echo '这是人类<br>'; } } //子类继承父类 class Student extends Person { } //测试 $stu=new Student; $stu->show(); //这是人类
执行过程:
第一步:在Student类中查找show(),如果找到就调用,找不到就到父类中查找
第二步:在Person类中查询show()
<?php //父类 class Person { public function show() { echo '这是人类<br>'; } } //子类 class Student extends Person { public function test() { //方法一; /* $person=new Person(); $person->show(); //这是人类 */ //方法二 $this->show(); //这是人类 } } //测试 $stu=new Student; $stu->test();
小结:
1、方法一:通过实例化父类调用父类的成员
2、方法二:通过$this关键字调用父类的成员,如果子类没有show(),就去父类找,建议用方法2
protected:受保护的,在整个继承链上使用
拓展阅读:PHP的访问修饰符;public,private,protected修饰符
案例1:实例化子集B,整个继承链有B和A,所以B可以访问到A的变量
//例题一: <?php class A { protected $num=10; //在整个继承链上访问 } class B extends A { public function getNum() { echo $this->num; } } //测试 $obj=new B(); //整个继承链上有A和B $obj->getNum(); //10
案例2:实例化子集B,整个继承链有B和A,所以A可以访问到B的变量
//例题二: <?php class A { public function getNum() { echo $this->num; } } class B extends A { protected $num=10; } //测试 $obj=new B(); //整个继承链上有A和B $obj->getNum(); //10
案例3:实例化父级A,整个继承链有A,所以A不能访问到B的变量
//例题三: <?php class A { public function getNum() { echo $this->num; } } class B extends A { protected $num=10; } //测试 $obj=new A(); //整个继承链上只有A $obj->getNum(); //Notice: Undefined property: A::$num
本站内容均为小米原创,转载请注明出处:小米技术社区>> PHP类的继承,继承的目的和执行过程,以及访问修饰符protected在类继承中的作用