php 抽象类 静态方法吗,php中的抽象类和静态方法是什么

php中的抽象类是指:在class前加了abstract关键字且存在抽象方法的类,它不能被直接实例化;静态方法是指:被static关键字修饰的方法,静态方法用于操作静态属性。

8d91dc381567a7ee7f93efb4ecd2c7d2.png

抽象类

抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。

(推荐教程:php视频教程)

抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。

如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法。如果子类没有全部实现抽象类中的所有抽象方法,那么该子类也是一个抽象类,必须在 class 前面加上 abstract 关键字,并且不能被实例化。

举例说明:abstract Class AbstractClass

{

abstract public function A();//这里不要携带body

abstract protected function B();//这里不要携带body

public function C(){}//这里要携带body

}

class ClassA extends AbstractClass

{

public function A(){

echo "Hello,I'm A
";

}

protected function B(){

echo "Hello,I'm B
";

}

public function E()

{

echo "Hello,I'm E
";

}

}

静态方法:

静态方法被static关键字修饰。

静态方法用于操作静态属性。所以,静态方法里面不能操作非静态属性。

由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。

如何访问静态方法呢?

在类内部:类名::静态方法 或者 self::静态方法

在类外部:类名::静态方法 或者 对象实例->静态方法

举例说明:class Person{

public static $nums = 0; // 静态属性的申明

public $age = 0;

public function addNum(){

self::$nums++;

echo self::$nums; // 在类里面,可用self关键词访问静态属性

echo Person::$nums; // 类可直接访问静态属性

// echo $this->nums; // 报错,静态属性不可以由对象通过 -> 操作符来访问

self::getNum(); // 在类里面,可用self关键词访问静态方法

Person::getNum(); // 类可直接访问静态方法

}

public static function getNum(){

// 静态方法

// echo $this->age; // 报错,静态方法里面不能操作非静态属性

echo '真的吗?'.self::$nums; //静态方法中只能操作静态属性

}

}

$p1 = new Person();

$p1->addNum();

echo $p1::$nums; // 对象实例可以这样访问静态属性

Person::getNum(); // 类可直接访问静态方法

$p1->getNum(); // 对象实例可以这样访问静态方法

相关推荐:php培训

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 怎样下载php,centos下怎样安装软件

centos下安装软件的方法是:centos安装软件的命令1、rpm包的安装1.安装一个包# rpm -ivh2.升级一个包# rpm -Uvh3.移走一个包# rpm -e4.安装参数--force 即使覆盖属于其它包的文件也强迫安装--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装&#xf…

php post 微信沙箱,微信支付平台错误:获取沙箱密钥失败,确保交易密钥是

按官方提示进行获取沙箱密钥的时候,久试不爽,总是提示错误 :“获取沙箱密钥失败,确保交易密钥是否正确”。这个纯粹是微信平台挖的坑呀,文档没有详细的进行一些讲解,也没有提示需要key,下面来说…

linux显示磁盘使用情况命令,Linux中监控磁盘分区和使用情况的几个工具

导读在文章中将讨论Linux中可用于监视磁盘使用情况的命令行实用程序,提供有关总大小容量、已用总量、文件系统信息和分区信息等。让我们看看这些工具如何帮助检索这些信息df命令df是一个Linux命令行实用程序,用于监视Linux磁盘使用情况。df命令显示文件系…

linux网络是文件吗,linux网络配置文件是什么意思

离开了么放得下我么回来了么还会爱我么新兵答主07-22TA获得超过2383个赞网卡的配置:1.网卡配置文件对于网卡信息的配置通常包括:配置IP地址、子网掩码和网关。网卡信息保存在网卡配置文件中。网卡配置文件位于/etc/sysconfig/network-scripts目录下。一块…

cd linux给u盘安装程序,使用U盘安装CDlinux

3、先把u盘插在电脑上与电脑连接,格式化成“FAT”文件系统,更改卷标为“CDLINUX”,之后再打开UltraISO工具进行写入:a、这里把你下载好的CDlinux文件打开。b、点击“写入硬盘映像”c、这里直接默认就好,点击“写入”4、…

zenmap扫描出来linux,如何在Linux上使用NMAP安全扫描器

Nmap是一个免费的开源网络发现和安全审计实用程序,在Linux用户社区中被广泛使用,因为它使用起来非常强大。 Nmap通过在特定目标(通过IP)发送数据包,并通过解释传入的数据包来确定哪些帖子被打开/关闭,扫描系统上运行什么服务&…

c语言小明今年16岁,C语言1.爷爷对小明说:我现在的年龄是你的7倍,过几年是你的6倍,再过若干年就分别是你的5倍,4倍,3倍,2倍.你知道爷爷和小明现在的年龄吗?...

满意答案ta_meng2013.06.15采纳率&#xff1a;49% 等级&#xff1a;12已帮助&#xff1a;5126人#include void main(){int i,j,k;int t60,t50,t40,t30,t20; //用于标记是否达到过这些要求&#xff0c;C语言貌似没有bool类型吧for (i21;i<200;i7) //爷爷的年龄为i{ji/7;…

Android usb 权限广播,android10.0 USB弹窗权限流程解析

USB请求权限流程1. 新建activity&#xff0c;获取UsbManager usbManager (UsbManager) getSystemService(Context.USB_SERVICE)2. 获取所以的USB设备HashMap map usbManager.getDeviceList()3. 过滤别的USB设备&#xff0c;拿到自己USB的USBDevice类&#xff0c;然后请求USB权…

android 仿网易标题栏,仿网易新闻可滑动标题栏TabLayout(文字或图标)

近期有需要&#xff0c;要做一个类似于网易新闻首页中的可滑动标题栏 TabLayout&#xff0c;根据大神写的 FlycoTabLayout 改造了一下&#xff0c;可以加载网络图片&#xff0c;主要实现内容如下&#xff1a;1. 可配置标题选中效果(下划线/上三角/圆角矩形或椭圆)&#xff1b;2…

android 多态如何组件化,Android组件化之子模块之间通信方案

1 背景Android开发中你的模块(Module)一般只有一个app主模块&#xff0c;随着功能不断扩展你会发现一个模块的缺点就是各种业务高度耦合&#xff0c;你就想测试登录模块&#xff0c;那么你可能会把支付模块也编译进去了&#xff0c;代价就是编译耗时&#xff0c;降低效率。大牛…

unity android sd卡路径,一、文件与路径——2、unity路径特点写法和文件读写全攻略...

1、Unity中各路径和目录的对应关系image.png其中&#xff0c;安卓中的路径是有两种分支的image.png在打包面板中&#xff0c;有个Write Access当我们选择Internal Only就是表示沙盒路径&#xff0c;/data/data/com.xxx.xxx/对应的Android方法为 getFilesDir()当我们选择SDCard时…

html 图片行内剧中,HTML入门(转义字符、行内样式和块级元素、定位、锚点、跑马灯标签、图片标签、表格标签的讲解)...

一、转义字符由特殊字符包裹的文本 会当做标签去解析对应不换行空格对应全角空格 em是字体排印学的计量单位&#xff0c;相当于当前指定的点数。其占据的宽度正好是1个中文宽度&#xff0c;而且基本上不受字体影响。<对应<>对应>二、行内元素和块级元素1.块级标签默…

html scale方法的作用,HTML Canvas scale() 方法

实例绘制矩形&#xff0c;放大到 200%&#xff0c;然后再次绘制矩形&#xff1a;YourbrowserdoesnotsupporttheHTML5canvastag.JavaScript&#xff1a;var cdocument.getElementById("myCanvas");var ctxc.getContext("2d");ctx.strokeRect(5,5,25,15);ctx…

html屏幕输出笔记本,笔记本怎样外接显示器 笔记本外接显示器方法【详解】

摘要&#xff1a;笔记本电脑怎样外接显示器?一些用户用惯了大屏台式电脑的朋友&#xff0c;改用笔记本玩游戏&#xff0c;看电影等开始会很不习惯&#xff0c;由于笔记本的屏幕与键盘相比台式机要小上一大截。如果身边有显示器或者液晶电视的话&#xff0c;不妨动手体验下笔记…

江陵中学2021高考成绩查询,2021高考序幕拉开 荆州38080名考生赴考

十年寒窗磨一剑&#xff0c;只待今朝问鼎时&#xff0c;6月7日上午&#xff0c;2021年全国高考正式拉开序幕&#xff0c;荆州3.8万余名考生迎来人生大考。上午8点&#xff0c;在湖北省沙市中学考点周围&#xff0c;不少身着红色送考服的班主任们正在给考生们发放准考证&#xf…

排球制作html,MAYA打造排球建模教程

这篇教程向悠悠之家的朋友们介绍用MAYA打造排球模型的过程&#xff0c;制作很简单&#xff0c;希望对刚学习MAYA建模的朋友们有所帮助&#xff0c;我们先看看最终的效果图&#xff1a;你们一定学过很多创建一个球的技巧&#xff0c;但在这个入门教学里面&#xff0c;我们将要学…

计算机主机箱前后都有什么,目前四种热门的主机机箱设计都有哪些优缺点?

在DIY里面机箱算是最没技术含量的产品之一&#xff0c;不过它却是与DIYer接触时间最长的东西。气味大师每天都会按下机箱开机键&#xff0c;也会空余时间瞄上几眼。机箱确实是对DIY影响最大的产品之一&#xff0c;今天我来盘点一下2018年见过的几个主流机箱设计方案。说是机箱设…

计算机自然语言的中国科学家,中科院教授王斌加入小米 任自然语言处理首席科学家...

王斌新浪科技讯 8月28日上午消息&#xff0c;小米新经济研究中心发布微信文章称&#xff0c;中国科学院信息工程研究所研究员、博士生导师王斌已于8月20日正式加入小米集团&#xff0c;任AI实验室自然语言处理(Natural Language Processing&#xff0c;NLP)首席科学家&#xff…

springcloud 相同服务名_浅谈分布式与微服务

分布式和微服务是什么关系&#xff1f;简单来说&#xff0c;分布式和微服务的概念比较相似&#xff0c;分布式属于微服务。但是分布式和微服务在架构、作用和粒度上有所区别。因此&#xff0c;两者的关系是既相互联系又相互区别。本文主要带大家认识分布式和微服务&#xff0c;…

bat 变量 文件内容第一行_VBA基础入门(38)FSO生成bat文件后执行的实例

1.首先&#xff0c;我们回顾下FSO是什么&#xff1f;文件系统对象FSO的英文全称是File System Object &#xff0c;这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法&#xff0c;将一系列操作文件…