PHP中抽象类,接口功能、定义方法示例


Posted in PHP onFebruary 26, 2019

本文实例讲述了PHP中抽象类,接口功能、定义方法。分享给大家供大家参考,具体如下:

这里先介绍接口,因为在我最近看的好几本php工具书中都没有提到抽象类。

本人也觉得,在理解了接口后抽象类也非常好理解。

例子代码随便写了一下。例子代码是很ok的,测试过了不会报错,懒得看代码的筒靴们看文字一样。栗子举的不好。

代码测试环境:php5.3.29

接口(interface):

接口就是为抽象而生的,相当于一个约定或规范,方便框架搭建,代码分工。

它里面指定了抽象方法的名称和参数和成员常量,但不能包含任何的具体方法,变量.

个人认为php是弱类型语言,强调的是灵活性。与java相比php里的接口对类型要求太松弛。不大好用,不推荐大量使用。

  • 1)接口中全部是抽象方法。(因为要用来给子类实现。所以都要是publicprotected的。)
  • 2)接口中不能有具体方法,且只能有成员常量
  • 3) 由于php和java c++等强类型语言不同,php是弱类型且动态类型的本身就不指定返回类型,参数的数据类型除四种基本类型不能指定外也可写可不写,所以对方法返回值和参数的类型无要求
  • 4)一个类可以实现多个接口。用法: implements关键字后实现多个接口用逗号隔开
interface Car {
  const name = "车子";
  public function run($speed=400,$time=300);
}
class Xiali implements Car {
  public function run($s=100,$t=200){//参数个数必须相同
    echo '哈哈 我会跑';
    return 'abc';
  }
  public function fly() {
    echo '哈哈我会飞';
  }
}

抽象类(abstract class):

作用和接口一样,都是为了规范子类的功能,只是比接口多包含了具体的内容。

1)包含至少一个抽象方法(abstract function)的类(换言之,任何类只要有了一个或以上的抽象方法,这个类就必须是抽象类。)

2)抽象类和接口一样不能实例化。都叫抽象的了,还咋实例化,实例都是具体的。2333.

3)小结:抽象类和普通类俩区别:1.至少包含一个抽象方法 2.不能实例化。别的都一样。

4)用法:

abstract class Father{
  abstract function func1();//至少一个抽象方法。
  public function func2(){//具体方法随便写。
    echo 'func2';
    $this->func3();
  }
  private function func3(){
    echo '一个private方法';
  }
}

实现继承到的抽象方法时

/**
 * 继承抽象类
 * 必须实现其所有抽象方法
 * 和普通一样,一个类也只能继承一个抽象类
 */
class Son extends Father {
  public function func1() {
     echo '实现(重写)抽象方法。参数名个数必须相同'
  }
}

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

PHP 相关文章推荐
php开发过程中关于继承的使用方法分享
Jun 17 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
php实现的递归提成方案实例
Nov 14 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 PHP
php实现断点续传大文件示例代码
Jun 19 PHP
php慢查询日志和错误日志使用详解
Feb 27 PHP
PHP htmlentities()函数用法讲解
Feb 25 #PHP
PHP html_entity_decode()函数讲解
Feb 25 #PHP
PHP hex2bin()函数用法讲解
Feb 25 #PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 #PHP
PHP封装的分页类与简单用法示例
Feb 25 #PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 #PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 #PHP
You might like
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Js+XML 操作
2006/09/20 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
python中self原理实例分析
2015/04/30 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
pytorch中index_select()的用法详解
2021/01/06 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
教师个人自我鉴定
2014/02/08 职场文书
家长写给老师的建议书
2014/03/13 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python