PHP面向对象接口如何使用?接口与抽象类的相同之处和区别

2022-09-18 1,111

PHP面向对象接口如何使用?接口与抽象类的相同之处和区别!接口在php面向对象当中,定义了实现某种服务的一般规范,声明了所需的函数和常量。在PHP中抽象类和接口有一定的相似性,却又有所不同,那么在PHP中抽象类和接口有哪些相同之处,又有哪些区别呢?下面来看看在PHP中接口怎么定义及使用、抽象类和接口在什么时候使用、接口与抽象类的概念、PHP面向对象接口与抽象类的相同之处、PHP面向对象接口与抽象类的区别。

PHP面向对象接口如何使用?接口与抽象类的相同之处和区别
PHP面向对象接口如何使用?接口与抽象类的相同之处和区别

PHP面向对象接口定义及使用

在PHP面向对象中接口我们使用interface来定义,而实现接口的时候,我们使用implements关键词来实现。

定义语法:

<?php
//定义一个接口
interface interfacename{
    pulice function functionname();
}
//实现一个接口
class classname implements interfacename{
    //必须实现接口中的方法;
    function functionname(){

    }
}
?>

一个类可以实现多个接口,实现多个接口的时候,使用英文半角逗号隔开,同时在类中需要全部实现接口中定义的方法,否则就会报错。

抽象类和接口在什么时候使用?

当你关注一个事物本质的时候,使用抽象类;当你关注一个操作的时候,使用接口。

接口与抽象类的概念:

接口是对动作的抽象,表示这个对象能做什么,对类的局部行为进行抽象。

抽象类是对根源的抽象,表示这个类是什么,对类的整体进行抽象,对一类事物的抽象描述。

PHP面向对象接口与抽象类的相同之处:

  • 接口与抽象类都是面向对象中的抽象类,都不用实例化;
  • 接口与抽象类的子类都必须要实现已经声明的抽象方法。

PHP面向对象接口与抽象类的区别:

  • 一个类可以实现多个接口,但是只能继承一个抽象方法;
  • 接口强调的是特定功能的实现,而抽象类所强调的则是所属关系;
  • 抽象类是接口与类的中介。
  • 接口需要实现用implements关键词,而抽象类需要继承,要用extends关键词。

PHP面向对象接口使用实例代码

<?php
//创建一个奖项接口
interface prize{
    function best($forword,$midfield,$defender,$goalkeeper);
}
//创建一个球员身价接口
interface PlayerValue{
    function Plaryer($name,$team,$Value);
}
//创建一个serie_a类并实现接口prize、PlayerValue及其方法。
class serie_a implements prize,PlayerValue{
    function best($forword, $midfield, $defender, $goalkeeper)
    {
        echo '意甲联赛最佳前锋是:'.$forword.'<br>';
        echo '意甲联赛最佳中场是:'.$midfield.'<br>';
        echo '意甲联赛最佳后卫是:'.$defender.'<br>';
        echo '意甲联赛最佳门将是:'.$goalkeeper.'<br>';
    }
    function Plaryer($name, $team, $Value)
    {
        echo $name;
        echo '所属球队是:'.$team.',';
        echo '身价是:'.$Value;
    }
}

//创建一个la_liga类并实现prize的方法
class la_liga implements prize{
    function best($forword, $midfield, $defender, $goalkeeper)
    {
        echo '西甲联赛最佳前锋是:'.$forword.'<br>';
        echo '西甲联赛最佳中场是:'.$midfield.'<br>';
        echo '西甲联赛最佳后卫是:'.$defender.'<br>';
        echo '西甲联赛最佳门将是:'.$goalkeeper.'<br>';
    }
}
//实例化类$serie_a,并传递参数;
$serie_a = new serie_a();
echo $serie_a->best('莱奥','布罗左维奇','布雷默','迈尼昂').'<br>';
echo $serie_a->Plaryer('莱奥','Ac米兰','7500万欧元');
echo '<hr>';
//实例化类$la_liga,并传递参数;
$la_liga = new la_liga();
echo $la_liga->best('本泽马','卡塞米罗','卡瓦哈尔','布努');
?>

在serie_a类中,实现了两个接口prize和PlayerValue两个接口,如果我们实现了两个接口,只实现两个接口中的一个方法,那肯定会报错的,所以我们实现了几个接口,就必须全部实现接口中定义的方法,否则就会报错。

声明: 本站仅提供资源学习下载,资源费用仅为赞助站长的整理费,不代表资源自身价值也不包含任何服务。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本站提供的资源来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:duhaomu@163.com

浩沐资源网 开发技巧 PHP面向对象接口如何使用?接口与抽象类的相同之处和区别 https://www.dhaomu.com/30653.html

相关文章

发表评论
暂无评论
  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

浩沐资源网-打造全网优质免费教程资源分享网站!