目录
1、php 接口类:interface 
2、php 抽象类 : abstract 
首页 后端开发 php教程 php抽象类和接口的区别

php抽象类和接口的区别

Jun 20, 2016 pm 01:03 PM
php接口

1、php 接口类:interface 

其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 : 
代码如下:
interface Shop <br />{ <br />public function buy($gid); <br />public function sell($gid); <br />public function view($gid); <br />} 
登录后复制


我声明一个shop接口类,定义了三个方法:买(buy),卖(sell),看(view),那么继承此类的所有子类都必须实现这3个方法少一个都不行,如果子类没有实现这些话,就无法运行。实际上接口类说白了,就是一个类的模板,一个类的规定,如果你属于这类,你就必须遵循我的规定,少一个都不行,但是具体你怎么去做,我不管,那是你的事,如:
代码如下:
class BaseShop implements Shop <br />{ <br />public function buy($gid) <br />{ <br />echo('你购买了ID为 :'.$gid.'的商品'); <br />} <br />public function sell($gid) <br />{ <br />echo('你卖了ID为 :'.$gid.'的商品'); <br />} <br />public function view($gid) <br />{ <br />echo('你查看了ID为 :'.$gid.'的商品'); <br />} <br />} 
登录后复制


你想想,在一个多人合作的大项目里面,有了接口类是多么的方便,这样你就不用去问别人,你的某某功能的方法名是什么了,当然如果你们喜欢这样我也没有办法。
结论 : 接口类就是一个类的领导者,指明方向,子类必须完成它指定方法。

2、php 抽象类 : abstract

其实抽象类和接口类有一部分很像,记得在哪里看见这样一句话,抽象类就把类像的部分抽出来,这句看上去很搞笑,其实它说出了抽象类的真理,抽象类的作用是,当你发现你的很多类里面用很多方法你不断的在重复写,那你就可以考虑使用抽象类了,你可能会说“我不是可以重写一个类每个公共类我个实例化一个这个公共类,调用相同的方法就可以了”,这里是可以,实际上抽象类做的工作也就是这个,不过他省去了你实例化的这个步骤,让你就像直接调用本类方法一样方便,而且你还可以重载这个方法。如:
代码如下:
abstract class BaseShop <br />{ <br />public function buy($gid) <br />{ <br />echo('你购买了ID为 :'.$gid.'的商品'); <br />} <br />public function sell($gid) <br />{ <br />echo('你卖了ID为 :'.$gid.'的商品'); <br />} <br />public function view($gid) <br />{ <br />echo('你查看了ID为 :'.$gid.'的商品'); <br />} <br />} <br />class BallShop extends BaseShop <br />{ <br />var $itme_id = null; <br />public function __construct() <br />{ <br />$this->itme_id = 2314; <br />} <br />public function open() <br />{ <br />$this->sell($this->itme_id); <br />} <br />} 
登录后复制


这里是一个例子,想上面一样我定义了一个商店类,抽出了它所有像的部分,买(buy),卖(sell),看(view),并且抽象类里都实现了这些方法,那么继承它的子类就自动获得了这些方法,子类就做它自己独特的东西,介绍代码的重复,提高复用性。 

结论:

 抽象类就是一个类的服务提供商,拥有众多服务,你不用必须用,当需要的时候你来用就可以,如果你觉得不提供服务不满意,你还可以自己来做。

区别:
1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。

2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)

3、接口没有构造函数,抽象类可以有构造函数。

4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。

5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。

抽象类还是接口。
如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。
如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何利用php接口和ECharts生成可视化的统计图表 如何利用php接口和ECharts生成可视化的统计图表 Dec 18, 2023 am 11:39 AM

在今天数据可视化变得越来越重要的背景下,许多开发者都希望能够利用各种工具,快速生成各种图表与报表,以便能够更好的展示数据,帮助决策者快速做出判断。而在此背景下,利用Php接口和ECharts库可以帮助许多开发者快速生成可视化的统计图表。本文将详细介绍如何利用Php接口和ECharts库生成可视化的统计图表。在具体实现时,我们将使用MySQL

如何结合ECharts和php接口实现统计图的动态更新 如何结合ECharts和php接口实现统计图的动态更新 Dec 17, 2023 pm 03:47 PM

如何结合ECharts和PHP接口实现统计图的动态更新引言:数据可视化在现代应用程序中起着至关重要的作用。ECharts是一个优秀的JavaScript图表库,可以帮助我们轻松创建各种类型的统计图表。而PHP则是一种广泛应用于服务器端开发的脚本语言。通过结合ECharts和PHP接口,我们可以实现统计图的动态更新,使图表能够根据实时数据的变化进行自动更新。本

如何通过ECharts和php接口实现实时统计图的展示 如何通过ECharts和php接口实现实时统计图的展示 Dec 17, 2023 pm 04:35 PM

如何通过ECharts和PHP接口实现实时统计图的展示随着互联网和大数据技术的快速发展,数据可视化成为了重要的一环。而ECharts作为一款优秀的开源JavaScript数据可视化库,能够帮助我们简单、高效地实现各种统计图的展示。本文将介绍如何通过ECharts和PHP接口实现实时统计图的展示,并提供相关代码示例。一、前期准备在开始之前,我们需要做一些准备工

什么是SPL接口(例如,迭代器,可计数,ArrayAccess),为什么使用它们? 什么是SPL接口(例如,迭代器,可计数,ArrayAccess),为什么使用它们? Apr 04, 2025 am 12:01 AM

SPL接口在PHP中包括Iterator、Countable和ArrayAccess。1.Iterator接口使对象可遍历,定义了current()、key()、next()、rewind()和valid()方法。2.Countable接口让对象报告元素数量,定义了count()方法。3.ArrayAccess接口允许对象像数组一样被访问和修改,定义了offsetExists()、offsetGet()、offsetSet()和offsetUnset()方法。这些接口提升了代码的效率和可维护性。

深入理解PHP接口的定义与使用方法 深入理解PHP接口的定义与使用方法 Mar 24, 2024 am 08:45 AM

深入理解PHP接口的定义与使用方法PHP是一种强大的服务器端脚本语言,广泛应用于Web开发领域。在PHP中,接口(interface)是一种重要的概念,它可以用来定义一组方法的规范,而不关心方法的具体实现。本文将深入探讨PHP接口的定义和使用方法,并提供具体的代码示例。1.什么是接口?在面向对象编程中,接口是一种抽象的概念,它定义了一组方法的规范,但没有具

如何通过ECharts和php接口实现统计图的数据验证和校验 如何通过ECharts和php接口实现统计图的数据验证和校验 Dec 18, 2023 pm 02:13 PM

如何通过ECharts和PHP接口实现统计图的数据验证和校验随着数据可视化的需求增加,ECharts成为了一个非常流行的数据可视化工具。而PHP作为一种常见的后端脚本语言,也广泛应用于Web开发中。本文将介绍如何通过ECharts和PHP接口实现统计图的数据验证和校验,并提供具体的代码示例。首先,我们需要了解ECharts。ECharts是一个由百度开发的开

如何通过php接口和ECharts生成可交互的统计图表 如何通过php接口和ECharts生成可交互的统计图表 Dec 18, 2023 pm 01:07 PM

在现代化的应用程序中,数据的可视化变得越来越流行。统计图表是一种很好的数据可视化方式,可以轻松地帮助用户了解数据的趋势。ECharts是一个强大的前端图表框架,它提供了丰富的图表类型和交互式功能。Php是一种非常流行的后端语言,可以轻松地生成动态内容和接口。在本文中,我们将介绍如何使用php接口和ECharts生成可交互的统计图表,并提供具体的代码示例。一、

如何使用php接口和ECharts实现统计图的数据筛选和过滤 如何使用php接口和ECharts实现统计图的数据筛选和过滤 Dec 17, 2023 pm 05:36 PM

如何使用php接口和ECharts实现统计图的数据筛选和过滤,需要具体代码示例在数据可视化中,使用统计图表是一种常见的展示数据方式。在实际应用中,经常需要对数据进行筛选和过滤,从而满足不同的需求。PHP接口和ECharts是两个广泛应用的工具,通过它们可以实现统计图表的数据筛选和过滤。下面将通过一个示例来演示如何使用PHP接口和ECharts实

See all articles