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

作者&投稿:赖畏 (若有异议请与网页底部的电邮联系)
~
php中的抽象类是指:在class前加了abstract关键字且存在抽象方法的类,它不能被直接实例化;静态方法是指:被static关键字修饰的方法,静态方法用于操作静态属性。
抽象类
抽象类是指在 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 <br/>";
}
protected function B(){
echo "Hello,I'm B <br/>";
}
public function E()
{
echo "Hello,I'm E <br/>";
}
}静态方法:

静态方法被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(); // 对象实例可以这样访问静态方法


Java语言好学么?
Java程序是用类来组织的。Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。3.分布性Java设计成...

软件测试需要学习些什么技能?
软件测试需要学习测试用例、测试用例的方法、缺陷管理工具、掌握数据库、App测试、python语言、Linux系统、前端语言等技能。1、测试用例 这是每一个工程师必备技能,也是标志你进入测试行业最低的门槛,关于测试用例可以参考我以前写的文章。2、测试用例的方法 测试用例的方法,只用掌握相关的方法,才能把测试...

惠普Envy 4-1039TX14笔记本电脑性能如何?
而在满载温度测试里,机身C面和D面的最高温度分别上升到了53度和60度左右,机身已经有些发烫,最高温度出现在了机身入风口和出风口附近。同时运行AIDA64的CPU满载测试程序和Furmark显卡满载程序1小时30分钟后,惠普Envy 4的CPU温度稳定在了70度左右,机身内部温度则稳定在了78度附近,...

电脑里常用的的英语有那些(汉语意思)?
Median and Selection 中位数 Generating Permutations 排列生成 Generating Subsets 子集生成 Generating Partitions 划分生成 Generating Graphs 图的生成 Calendrical Calculations 日期 Job Scheduling 工程安排 Satisfiability 可满足性 Graph Problems -- polynomial 图论-多项式算法 Connected Components 连通分支 T...

标志设计的类型分为哪几种?
具象图形logo这是在品牌设计中比较常见的。具体的形象可以表达特定的含义,具有易识别、易记忆、有趣、便于语言传达的优点。在动物、植物、环境等客观存在的食物进行加工变化。给人们带来最直观的感觉。具象图形能够更好地表达某类公司的文化理念,使人一目了然知道该品牌的行业所在。2、抽象图形logo 抽象...

问一个java超级简单问题
JAVASE只不过是JAVA基础知识,名字好听点而已,学完JAVASE之后,还得学很多东西才能开始JAVAEE的学习,而且JAVA SE是JAVA中最经典的东西,JAVA中哪个技术追根到底还是从JAVASE中来的 推荐过程 JAVASE JSP,XML,SERVLET,JAVA的三个架构,EJB,J2EE架构设计 ...

软件测试一般要学哪些内容?
第二阶段 为全栈测试数据管理与数据库测试,你要熟练掌握主流数据库管理系统(DBMS)中的数据定义、数据控制与数据操作方法,完成电商平台数据库设计、ERP系统数据库设计两大项目,最终目的是获得在互联网行业与金融行业进行测试时应当具备的数据使用能力与数据操作能力,同时获得在主流数据库中进行数据库测试的...

惠普450的笔记本 win7 32位操作系统物理内存4G为什么显示只有929MB可用...
http:\/\/h30318.www3.hp.com\/pub\/softpaq\/sp60501-61000\/sp60940.exe 2、首先刷新BIOS有一定风险性,刷新BIOS失败导致硬件问题需要用户自行承担的,如果电脑中有重要数据,建议您先行备份数据。但是根据用户给我们的反馈在windows下刷新的BIOS安全性还是比较高的,请您慎重考虑后再执行此操作!下面我将...

Android操作系统是基于Linux Kernel是什么意思
kernel(内核):是操作系统最基本的部分,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、文件和网络系统,决定着系统的性能和稳定。Linux内核:顾名思义即Linux系统的核心,是Linux操作系统...

什么是BIOS,怎么进入BIOS?
1、BIOS是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。电脑进入BIOS的具体操作方法如下:方法一:按【Del键】电脑开机...

岱岳区18434119043: php 静态方法 是什么意思? -
商炎深索: <?php header('content-type:text/html;charset=utf-8'); /* 普通方法,存放类内,只有一份 静态方法,也是存放于类内,只有一份 区别在于:普通方法需要对象去调用,需要绑定$this 即,普通方法,必须要有对象,然后让对象来调用 而静态方法...

岱岳区18434119043: php的抽象类和接口的区别 -
商炎深索: 接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量.抽象类中可以声明各种类型成员变量,实现数据的封装.接口没有构造函数,抽象类可以有构造函数.接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰.一个类可以同时实现多个接口,但一个类只能继承于一个抽象类.

岱岳区18434119043: php静态方法与非静态方法用法区别详解 -
商炎深索: 静态方法和非静态方法的区别总结如下: 1、静态方法属于类所有,类实例化前即可使用.也就是不需要new一个对象就可以使用该对象的方法.比如object::fun1()这样的格式; 2、非静态方法可以访问类中的任何成员,静态方法只能访问类...

岱岳区18434119043: PHP的“静态方法”中的静态如何理解?有什么作用?功能是什么?为什么要用到静态方法? -
商炎深索: 静态方法,可以理解为大家的公用方法.不用专门去实例化后进行调用.静态方法是跟随类的创建直接就初始化的(java中的,php不知道是不是类似).提供我的理解,仅供参考.

岱岳区18434119043: PHP抽象类的意义? -
商炎深索: 提供一个规范,继承该抽象类的所有的类, 都要实现抽象类中定义的方法,以此保证所有的子类都有相似的行为

岱岳区18434119043: php抽象类和接口的区别 -
商炎深索: 区别:1、对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过关键字extends继承.2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量.抽象类中可以声明各种类型成员...

岱岳区18434119043: 静态方法 有什么优缺点 PHP中静态方法(s -
商炎深索: static方法是类中的一个成员方法,属于整个类,即使不用创建任何对象也可以直接调用! 静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁. 静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存. C++中,若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法.静态方法为类所有,可以通过对象来使用,也可以通过类来使用.但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用.静态方法只能用类的静态成员.

岱岳区18434119043: 关于PHP抽象类和抽象方法的一些问题
商炎深索: 当两个,或者更多类都需要一个相同的方法时,可以在抽象类中写这个方法,然后继承,可以减少代码的重复.

岱岳区18434119043: 在PHP中,何时用抽象类,何时用接口 -
商炎深索: 我心情不好,想听歌,所以要找会唱歌的,这个时候你或者qq音乐,电视机,录音机等都可以,唱歌就是个接口.我不关心是个什么东东.我心情不好,我要在电脑上找个播放器听歌,我可以选择的就有qq音乐,百度音乐,阿里音乐等.这个时候播放器就是个抽象类,我要这类东西.当然,播放器要实现唱歌的接口.不过话又说回来,我大PHP,走的是极简路线,我们心情不好就直接用360音乐来治疗,从来就没考虑其他播放器,更别说什么找个明星现场唱,放个黑胶cd听之类的奢侈.解决一个问题,可以无限复杂,也可无脑简单,我们要做的是,寻找一个一段时间内有脑而简洁的方式来实现,这说真的,真tmd难.

岱岳区18434119043: PHP抽象类如何定义,PHP抽象类的应用规则 -
商炎深索: 要充分发挥抽象类的特点,就必须牢记以下规则1.某个类只要包含至少一个抽象方法就必须声明为抽象类.2.声明为抽象的方法,在实现的时候必须包含相同的或者更低的访问级别.例如,如果某个方法在抽象类中的访问级别是受保护的,在继承类...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网