PHP abstract 抽象类定义与用法示例


Posted in PHP onMay 29, 2018

本文实例讲述了PHP abstract 抽象类定义与用法。分享给大家供大家参考,具体如下:

PHP抽象类应用要点:

1.定义一些方法,子类必须完全实现这个抽象中所有的方法

2.不能从抽象类创建对象,它的意义在于被扩展

3.抽象类通常具有抽象方法,方法中没有大括号

PHP抽象类应用重点:

1.抽象方法不必实现具体的功能,由子类来完成

2.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义

3.抽象类的方法可以有参数,也可以为空

4.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数

示例:

//作用:抽象类不实现具体方法,具体方法由子类完成。
//定义抽象类 abstract
abstract class A{
  //abstract 定义抽象类的方法,这里没有花括号。子类必须实现这个抽象方法。
  abstract public function say();
  //抽象类可以有参数
  abstract public function eat($argument);
  //在抽象类中可以定义普通的方法。
  public function run(){
    echo '这是run方法';
  }
}
class B extends A{
  //子类必须实现父类的抽象方法,否则是致命的错误。
  public function say(){
    echo '这是say方法,实现了抽象方法';
  }
  public function eat($argument){
    echo '抽象类可以有参数 ,输出参数:'.$argument;
  }
}
$b =new B;
$b->say();
echo '<br>';
$b->eat('apple');
echo '<br>';
$b->run();

运行结果:

这是say方法,实现了抽象方法
抽象类可以有参数 ,输出参数:apple
这是run方法

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

PHP 相关文章推荐
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
PHP安全性漫谈
Jun 28 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
一个完整的PHP类包含的七种语法说明
Jun 04 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
配置Nginx+PHP的正确思路与过程
May 10 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 #PHP
在Laravel中使用DataTables插件的方法
May 29 #PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 #PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 #PHP
php实现表单提交上传文件功能
May 28 #PHP
PHP封装的非对称加密RSA算法示例
May 28 #PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 #PHP
You might like
php提交post数组参数实例分析
2015/12/17 PHP
php上传大文件设置方法
2016/04/14 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
java直接调用python脚本的例子
2014/02/16 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
2014年师德承诺书
2014/05/23 职场文书
代理人委托书
2014/08/01 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
投标承诺函格式
2015/01/21 职场文书
学校捐书活动总结
2015/05/08 职场文书
千与千寻观后感
2015/06/04 职场文书
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL