PHP抽象类基本用法示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-03 14:54:56 浏览: 评论:0
这篇文章主要介绍了PHP抽象类基本用法,结合实例形式分析了php抽象类的概念、原理、定义、使用方法及相关操作注意事项,代码注释包含较为详尽的说明信息,需要的朋友可以参考下。
本文实例讲述了PHP抽象类基本用法,分享给大家供大家参考,具体如下:
- <?php
- //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。
- //只要有一个抽象方法,那么此类必须定义为抽象类。
- //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。
- //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。
- //抽象类不能定义私有方法,可以定义私有属性。
- //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
- abstract class Employees{
- protected $name = null;
- function __construct($nameStr){
- $this->name = $nameStr;
- }
- abstract public function work();
- public function work1(){
- echo "<p>$this->name</p>";
- }
- //function __destruct(){}
- }
- class Managers extends Employees{
- public function __construct($nameStr){
- parent::__construct($nameStr);
- }
- /*public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
- echo "<p>$this->name is working</p>";
- }*/
- }
- //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。
- $obj2 = new Managers('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|有致命错误,且不能被继承)。
- //抽象类不能定义私有方法,可以定义私有属性。
- //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
- abstract class Employees{
- protected $name = null;
- function __construct($nameStr){
- $this->name = $nameStr;
- }
- abstract public function work();
- public function work1(){
- echo "<p>$this->name</p>";
- }
- //function __destruct(){}
- }
- class Managers extends Employees{
- public function __construct($nameStr){
- parent::__construct($nameStr);
- }
- public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
- echo "<p>$this->name is working</p>";
- }
- }
- //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。
- $obj2 = new Managers('e2');
- $obj2->work();
测试运行结果:
e2 is working
Tags: PHP抽象类
相关文章
- ·PHP抽象类、接口与其应用例子(2014-09-22)
- ·php中接口、抽象类、Final、Static例子(2016-07-27)
- ·php接口和抽象类使用示例详解(2020-10-06)
- ·php抽象类使用要点与注意事项分析(2021-05-10)
- ·PHP中抽象类、接口的区别与选择分析(2021-07-22)
- ·PHP抽象类与接口的区别实例详解(2021-11-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)