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中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
php生成略缩图代码
Jul 16 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
phplot生成图片类用法详解
Jan 06 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
php UNIX时间戳用法详解
Feb 16 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
mongodb和php的用法详解
Mar 25 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
Laravel 验证码认证学习记录小结
Dec 20 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中filter_input函数用法分析
2014/11/15 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
为你总结一些php系统类函数
2015/10/21 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
索趣科技的答案
2007/02/07 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
医学护理毕业生自荐信
2013/11/07 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
安全生产感想
2015/08/07 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
python数字图像处理:图像简单滤波
2022/06/28 Python