开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第二阶段:继承】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/712/detail/12688
继承
主要内容:
一、目标
二、概念
三、步骤
学习 PHP 的继承,之前已经讲解如何去封装类,那么在封装类的过程中,类封装的大小未知,类里面代码的某些东西是共用的,应该如何操作及体现。通过继承之后,可以实现代码的复用,还有结构的承载。
一、目标
理解继承的概念,掌握继承架构带来的效果
二、概念
继承:inherit,子类合法拥有父类某些权限
指父类已有的东西,子类可以直接拥有,将它称之为继承。
(1)继承必须满足继承关系:即存在合理的包含关系
包含关系的解释,例如,人类是一个很大的概念,但是人类可以分为男人和女人,此时男人、女人和人类以及儿子和父亲之间就形成了一个继承关系。但人跟牛之间是绝对没有继承关系的,故必须要保证有一个合理的包含关系,才是继承。也就是说,子类属于父类的一个分支,如此才能形成子类去继承父类,这点关系十分重要,故进行再次强调。因为在操作的过程中,若是初学者使用的时候,必须要清楚采用继承的时间。否则代码及结构会十分混乱。
(2)继承的本质是子类通过继承可以直接使用父类已经存在的数据和数据操作。
指属性和方法。若子类继承父类,如果子类没有任何东西,没做任何事情,也可以直接继承父类,这种继承的特性是发现代码可以直接复用。若有父类已经完成,子类可以直接使用。
(3)不同编程语言的继承机制和方式不一样,PHP 中使用 extends 关键字表示继承
指类与类的继承。
三、步骤
1、创建父类
通常是比较抽象的,大概的类,定义的方法和属性也都是比较大众的
例如,人类其实是抽象的,定义的方法和属性也是大众的。若是比较偏比较细的方法,就不会进行定义。例如人类概念里面的定义有一些是大众的,比如眼睛、嘴巴等,功能有能吃饭、能睡觉、能喝水等,但是有阴阳眼的这种功能就是十分小众的,在人类里面也不一定存在,需要具体到某一个子类的分支下面才有的一种特性,故不适合,这就是大众的要求。
2、创建子类
子类与已有父类之间属于包含关系:父类包含子类
子类创建时明确继承父类: extends
3、实例化子类对象后,子类对象可以直接访问子类不存在而父类存在的属性和方法
四、示例
1.继承的基础
子类(要继承其他类的类,也称之为派生类)与父类(被继承类,也称之为基类)之间本身是一种包含于被包含关系,如此才有可继承的前提
2.继承关键字
extends,子类想要继承父类,则必须在子类结构申明时明确使用 extends 关键字来继承相关类
男人、女人及人类之间形成了代码间真正的继承关系。
3.继承效果
子类可以不用自己去实现某些功能,而可以直接访问父类中已经存在的成员
以上体现了继承的特点,当前讲解的为概念,代码暂时不作演示。
五、小结
1、继承 extends 是面向对象思想中实现代码重复利用的重要特性
先有继承,后才有真正的代码复用。
2、继承是指子类可以直接访问父类中已经存在的成员,此为继承的特性。
3、继承可以节省代码工作,同时允许子类中进行扩展,即在子类中增加必要的父类不存在的功能
例如,man 里面可以有额外的内容,父类已有的或者还未有的都可以,不仅能实现代码的复用进行继承,还能实现自己的扩展,故此不局限于已有的类,父类不局限子类的发展路径,子类不仅可以继承父类,同时还有自己的发展,是符合人类的发展思维逻辑的,此为继承功能。