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 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
PHP ajax 分页类代码
Nov 13 PHP
服务器web工具 php环境下
Dec 29 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
php生成rss类用法实例
Apr 14 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
php中实现进程锁与多进程的方法
Sep 18 PHP
PHP抽象类和接口用法实例详解
Jul 20 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
python中zip和unzip数据的方法
2015/05/27 Python
Python reduce()函数的用法小结
2017/11/15 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
基于python实现删除指定文件类型
2020/07/21 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
优秀的自荐信要注意哪些
2014/01/03 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
班级活动策划书
2014/02/06 职场文书
总经理检讨书
2014/09/15 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
实习推荐信格式模板
2015/03/27 职场文书
行政处罚听证告知书
2015/07/01 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers