PHP 抽象方法与抽象类abstract关键字介绍及应用


Posted in PHP onOctober 16, 2014

PHP 抽象方法与抽象类 abstract 关键字
abstract 关键字用于定义抽象方法与抽象类。

抽象方法

抽象方法指没有方法体的方法,具体就是在方法声明的时候没有 {} 括弧以及其中的内容,而是直接在声明时在方法名后加上分号结束。

abstract 关键字用于定义抽象方法,语法:
abstract function function_name();

抽象类

只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类。抽象类同样用 abstract 关键字来定义。
抽象类不能产生实例对象,通常是将抽象方法做为子类方法重载的模板使用的,且要把继承的抽象类里的方法都实现。实际上抽象类是方便继承而引入的。

例子:

<?php 

abstract class AbstractClass{ 

// 定义抽象方法 

abstract protected function getValue(); 

// 普通方法 

public function printOut(){ 

print $this->getValue()."<br />"; 

} 

} 

class ConcreteClass extends AbstractClass{ 

protected function getValue(){ 

return "抽象方法的实现"; 

} 

} 
$class1 = new ConcreteClass; 

$class1->printOut(); 

?>

在这个例子中,父类定义了抽象方法以及对于方法的实现,但实际的内容却在子类里定义。
PHP 相关文章推荐
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
PHP daddslashes 使用方法介绍
Oct 26 PHP
解析php中的escape函数
Jun 29 PHP
php获取新浪微博数据API实例
Nov 12 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
PHP基于GD库实现的生成图片缩略图函数示例
Jul 05 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 #PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 #PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 #PHP
ThinkPHP分页实例
Oct 15 #PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 #PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 #PHP
PHP实现文件下载断点续传详解
Oct 15 #PHP
You might like
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
2018/05/15 NodeJs
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
详解Python中的type和object
2018/08/15 Python
wxPython多个窗口的基本结构
2019/11/19 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2015年度企业工作总结
2015/05/21 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
PHP命令行与定时任务
2021/04/01 PHP
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL