当前位置: 首页 > news >正文

PHP的类修饰符与访问修饰符

类修饰符

  • 1.abstract修饰的类为抽象类,如果一个类中含有抽象方法那么这个类就是抽象类(当然一个类中没有抽象方法,我们也可以定义这个类为抽象类),那么什么是抽象方法呢,抽象方法就是没有方法体的方法(没有大括号和里面的内容),抽象方法前面也加上abstract修饰。抽象类本身不能被实例化,只有一个类继承了它,并覆盖了它所有的抽象方法,这样我们可以实例化它的子类
abstract class My{
    abstract function say();
}
//
abstract class My{
     function say(){
        echo 'hello';
    }
}


  • 2.interface修饰的类为接口,接口与抽象类有点类似,不过他们的区别是,接口所有的方法都是抽象方法,接口的抽象方法前面没有abstract修饰,成员属性必须为常量。接口引用区别于类继承关键字 extends ,继承只能只是单一性,而接口可以使用关键字 implements 多个引用并用逗号分开。

interface demo { 
const NAME = "常量对象属性"; 
function fun1(); 
function fun2(); //抽象方法。 
} 
class MyPc extends Root implements demo , demo2 , demo3 { 
... 
}
  • 3.final修饰的类为终结类,它不能被继承。

访问修饰符

  • 1.public 公共的方法和属性,能在所有的类中使用

  • 2.static 静态的方法和变量

如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用,static的属性,在内存中只有一份,为所有的实例共用, 静态方法不能调用非静态属性 。不能使用self::调用非静态属性。

function test(){
static $a=1;
$a*=2;
echo $a."\n";
}
test()
test()
test()
//打印结果
//2
//4
//8

静态变量的初始化赋值只有一次,后面的test方法不会再初始化。

  • 3.private 修饰的方法和变量是私有的,只能在本类中调用(在其他的类中实例化本类,是无法调用private修饰的方法和变量)

  • 4.proteced 受保护的方法和变量,只能在本类和本类的子类中使用

  • 5.final 修饰的方法不能被覆盖。

相关文章:

  • 和北邮的学生相比,差哪儿了
  • 混沌工程 - 软件系统高可用、弹性化的必由之路
  • 安装 php 转
  • 吴恩达《机器学习》课程总结(2)单变量线性回归
  • 获取本工程的真实路径
  • jQuery $.each()常见的几种使用方法
  • 实战Nginx负载均衡高冗余高可用WEB架构
  • 谈谈如何在面试中发掘程序猿的核心竞争力 什么是程序员的核心竞争力?
  • 基于SpringMVC+Spring+MyBatis实现秒杀系统【业务逻辑】
  • 嵌套ViewPager问题
  • 【微服务No.4】 API网关组件Ocelot+Consul
  • python的全局变量
  • 源码阅读:SDWebImage(十一)——SDImageCache
  • Jetty:配置安全
  • PYTHON RE正则表达式
  • 【知识碎片】第三方登录弹窗效果
  • android 一些 utils
  • k8s如何管理Pod
  • Laravel5.4 Queues队列学习
  • orm2 中文文档 3.1 模型属性
  • php面试题 汇集2
  • Protobuf3语言指南
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue.js框架原理浅析
  • Wamp集成环境 添加PHP的新版本
  • 百度小程序遇到的问题
  • 大主子表关联的性能优化方法
  • 精彩代码 vue.js
  • 使用 QuickBI 搭建酷炫可视化分析
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 7行Python代码的人脸识别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #QT(串口助手-界面)
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (8)STL算法之替换
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (day 12)JavaScript学习笔记(数组3)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (一)80c52学习之旅-起始篇
  • (转)scrum常见工具列表
  • (转)shell调试方法
  • (转载)(官方)UE4--图像编程----着色器开发
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET Framework .NET Core与 .NET 的区别
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net web项目 调用webService
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET 指南:抽象化实现的基类
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET轻量级ORM组件Dapper葵花宝典