php的抽象类怎么用
php的抽象类怎么用
小编给大家分享一下php的抽象类怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
在PHP中,抽象类主要用于进行类型隐藏和充当全局变量,可以构造出一个固定的一组行为的抽象描述,这组行为能够有任意个可能的具体实现方式,只要类中有一个抽象方法,这个类就是抽象类。
本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。
php的抽象类用法是什么
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能
实例操作如下:
<?php//抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。//只要有一个抽象方法,那么此类必须定义为抽象类。//抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。//在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。//抽象类不能定义私有方法,可以定义私有属性。//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。abstractclassEmployees{protected$name=null;function__construct($nameStr){$this->name=$nameStr;}abstractpublicfunctionwork();publicfunctionwork1(){echo"<p>$this->name</p>";}//function__destruct(){}}classManagersextendsEmployees{publicfunction__construct($nameStr){parent::__construct($nameStr);}/*publicfunctionwork(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。echo"<p>$this->nameisworking</p>";}*/}//$obj1=newEmployees();//创建抽象类对象时,会产生一个致使错误。$obj2=newManagers('e2');//$obj2->work();
运行上述代码,会提示如下错误信息:
Fatal error: Class Managers contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Employees::work) in D:\phproot\test\ClassDemo.php on line 26
将错误提示位置及末尾位置代码注释删除后,改为如下代码:
<?php//抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。//只要有一个抽象方法,那么此类必须定义为抽象类。//抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。//在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。//抽象类不能定义私有方法,可以定义私有属性。//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。abstractclassEmployees{protected$name=null;function__construct($nameStr){$this->name=$nameStr;}abstractpublicfunctionwork();publicfunctionwork1(){echo"<p>$this->name</p>";}//function__destruct(){}}classManagersextendsEmployees{publicfunction__construct($nameStr){parent::__construct($nameStr);}publicfunctionwork(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。echo"<p>$this->nameisworking</p>";}}//$obj1=newEmployees();//创建抽象类对象时,会产生一个致使错误。$obj2=newManagers('e2');$obj2->work();
测试运行结果:
e2 is working
以上是“php的抽象类怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
php字符串增加1如何实现
php字符串增加1如何实现这篇“php字符串增加1如何实现”文章的...
-
php如何判断字符串是否有中文
-
php如何实现字符串去掉头尾
-
php字符串的组成是什么
php字符串的组成是什么这篇文章主要讲解了“php字符串的组成是什...
-
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
-
php字符串长度不一致如何解决
-
php时区不正确如何解决
-
php+fread()乱码如何解决
php+fread()乱码如何解决本篇内容介绍了“php+frea...
-
php explode报错如何解决
-
linux Centos如何安装PHP7
linuxCentos如何安装PHP7今天小编给大家分享一下li...