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,一经查实,立即删除!

相关文章

python目录结构生成库,使用CMake构建平台无关的目录结构

我试图为我的跨平台项目创建一个目录结构,但遇到了一些问题。我已经让CMake确定了放置库和可执行文件的适当位置,但这种结构仅适用于Windows。在我的结构如下所示:项目目录垃圾箱可执行文件图书馆图书馆Python增压模块python脚本这在Windows上…

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

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

php fpm 安装配置,php php+fpm安装配置

sudo apt - get install php5 - cgi php5 - mysql php5 - fpm php5 - curl php5 - gd php5 - idn php - pear php5 - imagick php5 - imap php5 - mcrypt php5 - mhash php5 - ming php5 - pspell php5 - recode php5 - snmp php5 - tidy php5 - xmlrpc php5 - xsl打开 /etc/ph…

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

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

shell脚本执行oracle删除表,shell脚本操作oracle删除表空间、创建表空间、删除用户...

oracle下表空间的导出,用户的删除,表空间删除,用户新建,表空间新建,数据导入的shell使用非oracle用户执行该脚本参数说名$1:base表空间的用户名$2:同步表空间的用户名使用场景测试用&#xff0c…

PHP标题获取数据库内容,php – 如何从数据库获取项目的标题并将其发送到CodeIgniter中的标题模板...

尝试这个>型号更改>控制器已更改。在模型中function get_card($card){$query $this->db->query("SELECT * FROM table_name WHERE creditcards $card ");$result $query->result_array();$count count($result); # Newif(empty($count)){ # Newre…

php教程调用数据库,PHP数据库调用类调用实例,php数据库调用实例_PHP教程

PHP数据库调用类调用实例,php数据库调用实例config("dnsaaa;uidsa;pwdsa;dbnametest");//3.选择数据库$dbname $db->select_db("test");//4.设置允许调试$db->debug true;//5.执行一条不返回结果的SQL语句$db->execute("insert…

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、…

linux7 telnet乱码,CentOS7安装配置telnet-server

1.安装xinetd和telnet-serveryum -y install telnet-server xinetd2.启服务(服务管理方式和CentOS6稍有区别)systemctl enable xinetd.serversystemctl enable telnet.socketsystemctl start telnet.socketsystemctl start xinetd.server注意:因为是由xinetd管理,这…

windows和linux存储float,C语言float型数据在内存中的储存方式

菜单导航/URHere/面包屑,通过CSS中的content简洁表达代码比如我们要写一个菜单导航/URHere/面包屑,如: 首页 > 个人中心 > 修改密码 代码: tolua杂记1 字符串调用luaFunc :DoString public class CallLuaFunction : MonoBehaviour { private…

Linux编译C没有文件名,crt1.o linux x64上没有这样的文件c编译错误

我正在linux平台上迈出第一步.我安装了Centos x64.我正在尝试构建一个包含几个函数和几个单元测试的小程序.我使用Netbeans 7.1.2作为开发环境.以下是构建过程的输出:CLEAN SUCCESSFUL (total time: 671ms)"/usr/bin/gmake" -f nbproject/Makefile-Debug.…

linux nmap下载教程,Linux_在Linux系统上用nmap扫描SSL漏洞的方法,以下载nmap 6.45及以上版本。如 - phpStudy...

在Linux系统上用nmap扫描SSL漏洞的方法以下载nmap 6.45及以上版本。如果懒的重新安装,可以直接下载ssl-heartbleed.nse 脚本。使用nmap 6.45扫描服务器心脏出血漏洞(heartbleed)的具体方法(步骤)如下:当然,你要先按好nmap,自己可以…

Linux的网络协议族是什么,Linux 网络协议的概述

网络层协议网络层协议主要包括 IP、ICMP(网络控制报文协议)、ARP(地址解析协议)IP协议该协议被设计成互联分组交换通信网,以形成一个网际通信环境。它负责在源主机和目的地主机之间传输来自其较高层软件的称为数据报文的数据块,它在源和目的地之间提供非…

linux百度文字识别,基于Linux平台的图片文字识别系统

摘要:图片文字识别OCR(Optical Character Recognition,光学字符识别)应用非常广泛。例如DNA序列图片识别;PDF文字识别;车牌号码自动识别;手机上的手写输入识别等。近年来该应用更加广泛,必然出现在教育领域的一款手机应用,将手机把试卷拍照查询答案,首先就是图片文字…

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

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

linux上的中国象棋游戏下载,中国象棋下载_中国象棋最新下载_玩一玩游戏

中国象棋是起源于中国,的一种棋类游戏,属于两个人之间的对抗,在中国有着悠久的历史。由于它的器皿简单,趣味性强,它已经成为一种非常受欢迎的棋类活动。中国象棋是中华民族的文化瑰宝,历史悠久,…

c语言字面量的作用是为变量,C语言(五) C 全局变量,局部变量,静态变量和常量...

一. 全局变量全局变量是在所有函数体的外部定义的,程序的所有部分(其他文件的代码)都可以使用。全局变量不受作用域的影响。全局变量的生命周期一直到程序的结束,全局变量是静态存储方式。例:#include #include /* a 就是一个全局变量*/int a…

河南理工大学c语言报告封面,河南理工大学图书信息管理系统设计_纯c语言课程设计.doc...

河南理工大学图书信息管理系统设计_纯c语言课程设计C语言课程设计报告题 目:图书信息管理系统设计河南理工大学计算机学院目 录第一章 题目与要求1.1 问题提出11.2 本系统涉及的知识点11.3 功能要求1第二章 功能设计2.1 算法设计12.2 部分模块流程图4第三章 程序代码…