PHP类继承、接口继承关系概述
PHP类继承:
PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如:
1 class frist{ 2 public function __construct(){ 3 echo "我是第一个类。","<br>"; 4 } 5 public function printer(){ 6 echo "frist","<br>"; 7 } 8 } 9 class seconds extends frist{} 10 class third extends seconds{} 11 $obj = new third(); 12 $obj->printer();
结果:这是第一个类。 frist 第二个类和第三个类没有重写printer()方法,第三个类实例化后可以调用printer()方法。
继承权限问题 2.1 父类private方法不可被继承,父类私有化 2.2 父类protected方法可以被继承,但不能被实例化对象调用,如果调用会出现" Call to protected method frist::printer()"的报错,父类对此方法置于保护模式下 2.3 父类public方法可以被继承、可以被实例化对象调用,属于公开方法 2.4 子类可重写父类public或者protected的方法,不能重新private的方法,如果同名只是在本类重新声明
接口类继承 3.1 接口支持多继承,接口类的方法不需要实现比如:
1 interface frist{ 2 public function ex1(); 3 } 4 interface seconds{ 5 public function ex2(); 6 } 7 interface third extends frist,seconds{ 8 public function ex3(); 9 } 10 class fourth implements third{ 11 public function ex1(){} 12 public function ex2(){} 13 public function ex3(){} 14 } 15 16 class fourth implements frist,seconds{ 17 public function ex1(){} 18 public function ex2(){} 19 }
3.2 接口类的方法权限都是public,默认public 3.3 引用接口的类必须实现接口的所有方法,否则会报错,比如:"Class e contains 1 abstract method and must therefore be declared abstract or implement the remaining methods",即:e类包含1个抽象方法,因此必须声明抽象或实现其余方法。
4. 抽象类:只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类
4.1 抽象类继承抽象类不能重写父类方法。
4.2 抽象类继承是对父类的方法的拓展。
4.3 继承的派生类当中要把所有抽象方法重载才能实例化。
4.4 抽象类实现的普通发放,可以在非抽象子类中直接调用。
5. 接口和抽象类的异同点(引用抽象类与接口区别)
5.1 对接口的使用方式是通过关键字implements来实现的,而对于抽象类的操作是使用类继承的关键字exotends实现的
5.2 接口没有数据成员,但是抽象类有数据成员,抽象类可以实现数据的封装。
5.3 接口没有构造函数,抽象类可以有构造函数。
5.4 接口中的方法都是public类型,而抽象类中的方法可以使用private、protected或public来修饰。
5.5 一个类可以同时实现多个接口,但是只能实现一个抽象类。
5.6 相同点:函数体内不能写任何东西,比如:function getName();即可。
原创帖,转载请注明出处~
转载于:https://www.cnblogs.com/dongw/p/php_extend.html
PHP类继承、接口继承关系概述相关推荐
- Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
- 接口,类与接口的关系,接口与抽象类的区别
接口 1 接口的概念 与之前学习过的抽象类一样,接口( Interface )在Java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准. 2 接口格式 3 接 ...
- [Java基础]类和接口的关系
类和接口的关系:
- TypeScript基础入门 - 接口 - 继承接口
转载地址 TypeScript基础入门 - 接口 - 继承接口 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.13 为 ...
- java中与接口类,Java中类与类、类与接口、接口与接口的关系
类与类 继承关系,只能单继承,但是可以多层继承. 类与接口 实现关系,可以单实现,也可以多实现,并且可以在继承一个类的同时实现多个接口. 接口与接口 继承关系,可以单继承,也可以多继承. 附:代码举例 ...
- Java接口继承接口
直接先上代码 package practice;public interface A {public void getName(); } package practice;public interfa ...
- CLR via C#学习笔记-第十三章-定义接口、继承接口
13.1 类和接口继承 接口是为了实现多继承 所有的类都继承了System.Object,及其四个公共实例方法:ToString.Equals.GetHashCode.GetType. CLR允许定义 ...
- Java接口及接口继承
Java接口 开发工具与关键技术:My Eclipse 10.Java 作者:郑凯丰 撰写时间: 2019年5月2日 修饰符 :public .abstract [修饰符] interface 接口名 ...
- Java基础-day06-抽象类和接口
抽象类 概述: 使用abstract关键字修饰的类就是抽象类 特点: 这种类不能被创建对象,它就是用来做父类的,被子类继承的 格式 修饰符 abstract class 类名{} 抽象类中的成员 成员 ...
- day02-抽象类,接口、代码块、final、单例、枚举
java基础[抽象类,接口.代码块.final.单例.枚举] 第一章 抽象类 1.1 概述 1.1.1 抽象类引入 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同.那么父类的方法声明和方法主 ...
最新文章
- Java泛型使用需要小心
- java影像出租面向对象,Java中的面向对象 - zhiruochujian的个人空间 - OSCHINA - 中文开源技术交流社区...
- cordova切换到安卓5.1.0,Android SDK not found
- 数据结构与算法—一文多图搞懂双链表
- hibernate 联合主键 merge
- 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)
- 【Raspberry Pi - Raspbian】系统换更新源
- Ubuntu 安装 Redis (非源码Build方式)
- CSP学习之ASN.1编码(一)
- 1一10到时的英文单词_哈尔滨一山羊皮,叫雪地皮衣!刮风下雪不冻身,10年免洗不过时...
- 移动先行之谁主沉浮? 带着你的Net飞奔吧!
- Win10 底部应用图标显示不正常(空白)
- OpenGL ES 2.0 系列一
- windows下解决Git报错: LF will be replaced by CRLF the next time Git touches it
- 运维工程师岗位职责、职业路线和常用工具
- 【渝粤题库】陕西师范大学151206 中级财务管理作业 (专升本)
- 计算机设置共享文件,电脑设置共享文件夹的方法步骤
- 计算机运行断电 硬盘,电脑突然断电的坏处有哪些?你知道吗?
- 【牛客 错题集】Linux系统方面错题合集
- CMWAP和CMNET 的区别与适用范围