首页 > 编程语言 >php面向对象三(三大特性)

php面向对象三(三大特性)

时间:2024-05-30 23:24:38浏览次数:17  
标签:重写 功能 php 继承 子类 面向对象 父类 方法 三大

面向对象的三大特性:封装性、继承性、多态性

一、类的封装性

将敏感数据保护起来,不被外界访问。
类的封装就是将一个功能的方方面面,封装成一个类,例如:数据库工具类,把数据库操作的所有方面全面封装到类中。
类的封装性实现,就是通过权限控制符来实现
在项目中,所有成员属性,一般都是private、protected权限

二、类的继承性

相当于CSS继承:将上层标签定义的样式,继承到子标签来使用。多个标签如果具有相同的样式,只需要在父标签定义,再继承到子标签来使用。相同的样式只需要定义一次
如果一个B类拥有了A类的所有特征,则我们就认为B类继承了A类。
A类:父类、上层类、基础类(最顶层的类)
B类:子类、下层类
extends关键字,继承父类
继承是为了实现功能的升级和扩展。如果一个项目不需要升级和扩展,则不用继承。
功能的升级:原来有的功能,对现在的功能进行更加完善的处理。
功能的扩展:原来没有的功能,增加一个新功能
如果项目需要升级和扩展功能,不能直接修改原类,需要创建一个子类,并继承父类
parent关键字
self代表当前类,parent代表父类;
self可以调用本类的内容:类常量、静态属性、静态方法、成员方法;
parent可以调用父类的内容:类常量、静态属性、静态方法、成员方法;
//继承的格式
class SubClass extends ParentClass{
	//子类的功能代码
}
语法说明:
1.subclass代表要创建的子类的名称
2.extends是继承关键字,不区分大小写
3.ParentClass代表已经存在的父类或者上层类

示例:

三、类的多态

类的多态,就是类的多种形态
类的多态,主要指方法重写
方法重写:父类有一个方法,在子类用同样的名称再定义一次。
功能升级:父类有的功能,子类的功能比它更完善、更详尽。通过方法重写来实现。
如果不需要升级,也不需要扩展,继承就没有意义
//方法重写的要求:
  //子类中重写的方法名称,要与父类方法名称一致。
  //子类中重写的方法的参数个数,必须要与父类方法的参数个数一致;
  //子类中重写的方法的类型,必须要与父类方法的类型一致;父类是成员的方法,子类必须是成员的方法;父类是静态方法,子类也必须是静态方法。
  //子类中重写的方法的权限,不能低于父类方法的权限。
  //如果父类方法权限位public,则重写方法必须是public;
  //如果父类方法权限位protected,则重写方法必须是public、protected;

标签:重写,功能,php,继承,子类,面向对象,父类,方法,三大
From: https://www.cnblogs.com/caidao666/p/18223464

相关文章

  • php面向对象二
    一、访问对象属性和方法的操作在php中,访问对象的属性和方法,使用箭头(->)来访问:$obj->name、$obj>showinfo()<imgsrc="https://pic1.zhimg.com/v2-09034cd631a64d96c402ca53148098f8_b.jpg"data-caption=""data-size="normal"data-rawwidth="1038"da......
  • 编译安装PHP服务(LAMP3)
    目录1.初始化设置,将安装PHP所需软件包传到/opt目录下(1)关闭防火墙(2)上传软件包到/opt目录2.安装GD库和GD库关联程序,用来处理和生成图片3.配置软件模块4.编译及安装5.优化把PHP的可执行程序文件放入路径环境变量的目录中便于系统识别6.复制模版文件作为PHP的主配置文件,......
  • Python—面向对象小解(3)
    一、多态多态指的是一类事物的多中形态相同的方法,产生不同的执行结果运算符+*的多态int+int加法计算str+str字符串拼接list+list列表的数据合并在python中可以使用类实现一个多态效果在python中使用重写的方式实现多态(1)定义两个类:老师、车;(2)定义老师类......
  • DeerOJ的前端框架介绍-Web文件夹和App文件夹(route.php)
    Web文件夹下的结构DeerOJ的前端框架参考了部分Lavarel框架,做到兼顾代码的可维护性和可阅读性。具体的维护目录文件结构如下:注意到web文件夹下的index.php这是整个前端程序的main程序,当服务段收到请求后,根据.htaccess文件指定使用index.php文件来生成网页,并把网页数......
  • DeerOJ的前端框架介绍-config.php
    config.php文件config.php文件是PHP应用程序的配置文件,具体用于DeerOnlineJudge(DeerOJ)系统的设置。它定义了应用程序的基本信息、数据库连接、Web服务器设置、安全配置、邮件配置、评测机配置以及一些开关设置。基本信息(profile)部分参数解释如下:oj-name:在线......
  • web前端三大主流框架
    Web前端三大主流框架分别是Angular、React和Vue.js。下面我将分别详细介绍这三个框架的特点、优缺点以及应用场景。1.Angular特点:完整性:Angular是一个完整的框架,提供了数据绑定、组件化、路由、依赖注入等功能。TypeScript支持:Angular使用TypeScript进行开发,提供了静态类型......
  • python大数据 pycharm中的面向对象-文件读写-异常
    一、继承#类的定义#旧式类定义一般在定义单个类时使用class类名:name=None deffunc(self):pass#新式类定义一般在继承时使用class类名(指定需要继承的类):name=Nonedeffunc(self):pass#新式类定义cl......
  • 关于PHP的webshell免杀小结
    0X00普通的一句话木马(适用于CTF和小站)<?phpeval($_POST['a']);?>//函数的相似替换<?phpassert($_POST['a']);?> <?php@eval($_POST['110']);?>与第一个一句话木马相比多了一个"@"字符,我们发现这个字符的含义是在php语法中表示抑制错误信息即使有错误也不返回;属于不......
  • mac系统如何切换php版本
    brewinstallshivammathur/php/[email protected]安装的这个库安装8.1。8.3替换即可#卸载所有PHP版本brewuninstall--ignore-dependenciesphpbrewuninstall--ignore-dependenciesphp@7.4brewuninstall--ignore-dependenciesphp@8.1brewuninstall--ignore-dependen......
  • 如何设计简单词法分析器 C++(面向对象)
    前言与其他教程不同,本文实现的词法分析器借鉴于C++输入流我搜过的教程基本上都是从状态转换的思想入手,虽然本文思路类似于状态转换,但也有独到之处。从面向对象的角度其他教程大多采用面向过程,二者都能解决问题,各有优劣。只不过我从面向对象的角度,给读者提供一个新......