广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中类继承关系的示例分析
  • 510
分享到

PHP中类继承关系的示例分析

2024-04-02 19:04:59 510人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关PHP中类继承关系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在php中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就

这篇文章将为大家详细讲解有关PHP中类继承关系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

php中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就能得到相应的功能。假设大致有这么一个父类:

 1 <?php
 2 class Father{
 3 
 4     public function __construct(){
 5         echo '我是父类的构造方法!';
 6     }
 7 
 8     protected function say($str = 'Hello World!'){
 9         echo '说了一句话:' . $str;
10     }
11 }
12 ?>

然后呢,搞一个子类去继承他:

1 <?php
2 
3 class chirld extends Father{
4 
5     public __construct(){
6         echo '我是子类的构造方法~';
7     }
8 }

此时你实例化子类,结果将会是我是子类的构造方法~! 
当然,因为继承关系,所以子类是可以调用父类的say()方法的。

如果你想实现父类的构造方法,然而你又想实现子类的构造方法,你可以这样子去做:

 1 <?php
 2 
 3 class chirld extends Father{
 4 
 5     public __construct(){
 6         parent::__construct();
 7         echo '我是子类的构造方法~';
 8     }
 9 }
10 
11 ?>

这时候就会输出我是父类的构造方法!和我是子类的构造方法~。

假设你在子类中定义了这么一个方法:

1     protected function say($str = ''){
2         echo '我是子类的say';
3     }

那么,你此时从父类继承下来的sys()方法将会被重写,所以调用后输出的结果就是:我是子类的say。

如果你这样定义会怎样?

1     public function say($str = ''){
2         echo '我是子类的方法哦~';
3     }

这样的写法还是可以的。PHP跟其他强类型语言不同的地方是,PHP重写方法允许你对重写的方法”向上公有化”,而不允许你”向下私有化”,就比如在这里你定义为private是肯定会报错的,而像c++这样语言确恰恰相反。

PHP的对于这种情况的思想就是,你父亲给了你受保护级别的遗产,此时在你手上是保护级别的,你父亲允许你对对别人分享,也就是public,但不允许你自己藏起来,也就是private,自己独吞肯定不行的。

此时你肯定会问,那么父类的say()设置为private会怎样? 
结果不会怎样,就是父类已经私有化了,子类根本继承不到,所以你在子类中的say()方法随你这么定都可以。

还有一个问题,就是父类已经定义了sys()中带可选参数,那么,在子类中的你像下面这样无参数定义会怎样呢?

    public function say(){
        echo '哈哈。我没有参数了耶~';
    }

结果还是可以正常运行的,只不过会有 E_STRICT级的提示。原因在于PHP标准就是参数的数量必须跟父类对齐,当然,可以在php.ini中进行错误级别设置。

关于“PHP中类继承关系的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: PHP中类继承关系的示例分析

本文链接: https://www.lsjlt.com/news/83712.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP中类继承关系的示例分析
    这篇文章将为大家详细讲解有关PHP中类继承关系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PHP中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就...
    99+
    2022-10-19
  • c++中继承关系的示例分析
    这篇文章给大家分享的是有关c++中继承关系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 什么是继承继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序...
    99+
    2023-06-20
  • ES6 javascript中Class类继承的示例分析
    小编给大家分享一下ES6 javascript中Class类继承的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下:1. 基本用法Class 之间可以通过extends关键字...
    99+
    2022-10-19
  • php中有限继承的示例分析
    这篇“php中有限继承的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php中有限继承的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起...
    99+
    2023-06-06
  • javascript中继承的示例分析
    这篇文章主要介绍javascript中继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript 中的继承实例详解阅读目录原型链继承借用构造函数组合继承寄生组合...
    99+
    2022-10-19
  • js中继承的示例分析
    这篇文章给大家分享的是有关js中继承的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承的简介继承”是JavaScript面向对象设计的重要一环,愿你认真读完本文,吃透继...
    99+
    2022-10-19
  • CSS中继承的示例分析
    小编给大家分享一下CSS中继承的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、说明解释   -  ...
    99+
    2022-10-19
  • Python中类继承与多态的示例分析
    这篇文章主要介绍了Python中类继承与多态的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。概念类(Class): 用来描述具有相同的属性和方法的对象的集合。类变量:...
    99+
    2023-06-22
  • Angular.JS中Scope继承的示例分析
    这篇文章主要介绍Angular.JS中Scope继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基本原理在JavaScript中,每创建一个构造函数(constructo...
    99+
    2022-10-19
  • Java集合类之组织结构和继承、实现关系的示例分析
    这篇文章主要为大家展示了“Java集合类之组织结构和继承、实现关系的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java集合类之组织结构和继承、实现关系的示例分析”这篇文章吧。Coll...
    99+
    2023-05-30
    java
  • javascript中实现继承的示例分析
    小编给大家分享一下javascript中实现继承的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!类式继承//声明父类//声明父类function SuperClass() { &nbs...
    99+
    2023-06-27
  • ES6新特性之类和继承的示例分析
    这篇文章主要介绍了ES6新特性之类和继承的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、类(Class)1.基本语法JavaSc...
    99+
    2022-10-19
  • Mybatis TypeHandler接口及继承关系示例解析
    目录开篇TypeHandler接口TypeHandler继承体系IntegerTypeHandlerDateTypeHandlerTypeHandlerRegistryTypeHan...
    99+
    2023-02-08
    Mybatis TypeHandler接口继承 Mybatis TypeHandler
  • python类的继承链实例分析
    1、子类可以继承父类,同样,父类也可以继承自己的父类,一层一层地继承。 class A: def have(self): print('I hava an apple') c...
    99+
    2022-11-12
  • JavaScript原型继承的示例分析
    这篇文章主要介绍JavaScript原型继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在传统的基于Class的语言如Java、C++中,继承的本质是扩展一个已有的Cla...
    99+
    2022-10-19
  • JavaScript组合继承的示例分析
    这篇文章主要为大家展示了“JavaScript组合继承的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript组合继承的示例分析”这篇文章吧。原型链继承父类实例作为子类的原型...
    99+
    2023-06-25
  • C++继承方式的示例分析
    这篇文章给大家介绍C++继承方式的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介绍一下各种C++继承方式的具体应用方法,...
    99+
    2023-06-17
  • css中属性值继承的示例分析
    这篇文章主要介绍了css中属性值继承的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。继承:html元素可以从父元素那里继承一部分cs...
    99+
    2022-10-19
  • CSS中级联和继承的示例分析
    这篇文章主要为大家展示了“CSS中级联和继承的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中级联和继承的示例分析”这篇文章吧。   1.在HT...
    99+
    2022-10-19
  • Java中继承和多态的示例分析
    这篇文章给大家分享的是有关Java中继承和多态的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言首先我们如果要使用Java中存在的包,可以程序中使用import语句导入包。包说通俗点就是一个文件夹,为了...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作