子类是否无法实现相同的接口父类实现的正常行为?我得到了PHP v5.6

interface blueprint {

public function implement_me();

}

class one implements blueprint {

public function implement_me() {

}

}

class two extends one implements blueprint {

}

//no fatal error triggered for class two

编辑:所以上面的代码工作很好没有错误或警告即使我在子类2中实现了接口蓝图而没有方法impement_me()为什么子类不能实现相同的接口父类实现?

如果我为第二类实现蓝图以外的其他接口然后它工作,我必须在类2中使用blueprint_new方法,否则触发致命错误.这部分按预期工作.

interface blueprint {

public function implement_me();

}

class one implements blueprint {

public function implement_me() {

}

}

interface blueprint_new {

public function todo();

}

class two extends one implements blueprint_new {

}

//this will trigger fatal error.

解决方法:

子类自动继承父类的所有接口.

有时您不希望这样,但您仍然可以在子类中实现任何甚至多个接口.

唯一不起作用的是扩展接口,就像无法实现类(或抽象类)一样.

在第二个代码中触发的错误是因为你没有在第二类中实现接口blueprint_new中的所有方法,但基本上你的代码没有任何问题.

例:

class MobilePhone implements GsmSignalPowered {}

class SamsungGalaxy extends MobilePhone implements UsbConnection {}

interface ThunderboltPowered {}

interface GsmSignalPowered {}

interface UsbConnection {}

$s = new SamsungGalaxy();

var_dump($s instanceof GsmSignalPowered); // true

var_dump($s instanceof UsbConnection); // true

var_dump($s instanceof ThunderboltPowered); // false

$m = new MobilePhone();

var_dump($m instanceof GsmSignalPowered); // true

var_dump($m instanceof UsbConnection); // false

var_dump($m instanceof ThunderboltPowered); // false

标签:php,oop,interface,extending-classes

来源: https://codeday.me/bug/20190823/1702610.html

php中子类实现多接口,PHP子类无法实现相同的接口父类实现相关推荐

  1. 2014年4月5日 java集合框架总结2--List接口及其子类

    List接口 Collection接口的子接口,可以使用Collection中全部方法. 有序集合,元素有索引,元素可以重复 List:特有的常见方法:有一个共性特点就是都可以操作角标. 1,添加   ...

  2. java 子类必须实现_Java学习之接口的子类必须实现接口的全部方法吗?

    接口的子类必须实现接口的全部方法吗? 接口的子类必须实现接口中全部的方法吗?答案:不是.原因如下: 如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因 ...

  3. python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法

    对象是特征(变量)与技能(函数)的结合体而类是一系列对象共同的特征与技能的集合体 class teacher:lesson = "python"def __init__(self, ...

  4. 黑马毕向东Java课程笔记(day14-1——14-11):集合类(集合框架)——集合类分类与特点+List集合接口及其子类

    1.集合类特点   为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.   数组和集合类同是容器,有何不同 ...

  5. JAVA显示子类num值_JavaSE8基础 子类中的成员变量与父类重名 简单示例

    os :windows7 x64 jdk:jdk-8u131-windows-x64 ide:Eclipse Oxygen Release (4.7.0) 代码: //基类 class Person ...

  6. java 父类this_java父类方法中使用this,可以把this强转为子类对象,然后调用子类的实例方法,怎么解释?...

    1.代码如下 父类代码: public class A { public void a(){ B b=(B)this; System.out.println(b.getNum()); System.o ...

  7. 设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类):

    设计一个形状类(接口)Shape,方法:求周长和求面积 形状类(接口)的子类(实现类): package zuoye2;public interface Shape {// 求面积方法double g ...

  8. 设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类): Rect(矩形) Circle(圆形)Rect类的子类: Square(正方形)不同的子类会有不同的计算周长和面

    设计一个形状类(接口)Shape,方法:求周长和求面积 形状类(接口)的子类(实现类):     Rect(矩形)     Circle(圆形) Rect类的子类:     Square(正方形)   ...

  9. LLVM中几个重要的Passes子类

    LLVM中几个重要的Passes子类 ModulePass 它是最通用的超类.通过继承此类,可以分析整个模块.函数在模块内是无特定顺序的.要使用它时,需要编写一个继承自ModulePass并重载run ...

  10. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...

    不知不觉中,千锋重庆学习Java已经半个月了,同学们感觉受益匪浅.有一个同学本来是软件编程专业基础却是意外的差,什么标识符.变量的命名规则.方法的定义.数组.面向对象的封装.继承.多态,还有接口.抽象 ...

最新文章

  1. 反向工程_反向工程:宾利精心复刻了1929 Blower车型
  2. Oracle安装步骤及PL/SQL Developer连接数据库
  3. Android 启动分析 1
  4. Python——三级菜单
  5. LeetCode 20 Valid Parentheses (C++)
  6. gtk_widget_modify_bg的用法
  7. 你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?
  8. java语言操作Oracle数据库中的CLOB数据类型
  9. 系统级芯片设计语言和验证语言的发展
  10. Java HashSet和LinkedHashSet的用法
  11. 电脑文件夹同步软件哪个比较好用?
  12. (转)交替方向乘子法(ADMM)的原理和流程的白话总结
  13. 最新海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
  14. 陈丹琦组最新力作:仅需dropout两次的对比学习框架
  15. 想做AI工程师?这个案例必须掌握!(附完整代码Keras实现CNN)
  16. python 二项分布_如何理解python中的二项分布?
  17. 【组合数学】递推方程 ( 常系数线性齐次递推方程 | 常系数、线性、齐次 概念说明 | 常系数线性齐次递推方程公式解法 | 特征根 | 通解 | 特解 )
  18. Unity3D初级工程师面试指导
  19. 如何使用python3 以及API发微博文章
  20. android图片裁剪器

热门文章

  1. 在VC中使用ADO开发数据库应用程序
  2. 程序员的鄙视链,你被鄙视了吗?
  3. c++矩阵连乘的动态规划算法并输出_算法交流: 7215 简单的整数划分问题 【2.7基本算法之算法效率】...
  4. union共用体(联合体)、宏定义、枚举
  5. Adobe illustrator 剪切蒙版 - 连载 14
  6. 1.4编程基础之逻辑表达式与条件分支 18 点和正方形的关系
  7. 关于未来世界,永生的几个方向和总结思考
  8. 白鹭引擎写入文字图层方法实例
  9. RTX5 | 配置文件RTX_Config.h(二)
  10. centos linux引导修复_【Linux 运维】 Centos7.x 系统修复模式