PHP抽象类基本用法示例


Posted in PHP onDecember 28, 2018

本文实例讲述了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

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP制作的意见反馈表源码
Mar 11 PHP
php 文章采集正则代码
Dec 28 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
使用PHP实现Mysql读写分离
Jun 28 PHP
PHP函数getenv简介和使用实例
May 12 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
为你总结一些php信息函数
Oct 21 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
php PDO属性设置与操作方法分析
Dec 27 #PHP
php实现的PDO异常处理操作分析
Dec 27 #PHP
CI框架网页缓存简单用法分析
Dec 26 #PHP
CI框架附属类用法分析
Dec 26 #PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 #PHP
CI框架实现创建自定义类库的方法
Dec 25 #PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 #PHP
You might like
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP 高手之路(二)
2006/10/09 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP 图片处理
2020/09/16 PHP
基于jQuery的表格操作插件
2010/04/22 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
jquery实现拖拽小方块效果
2020/12/10 jQuery
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
Python文件去除注释的方法
2015/05/25 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python入门_条件控制(详解)
2017/05/16 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python实现随机爬山算法
2021/01/29 Python
简历上的自我评价
2014/02/03 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
python开发飞机大战游戏
2021/07/15 Python
php将xml转化对象的实例详解
2021/11/17 PHP