问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP5中interface 和 abstract class 的区别

发布网友 发布时间:2022-04-20 01:34

我来回答

2个回答

懂视网 时间:2022-04-07 10:12

interface是指接口,使用接口(interface)你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是public,这是接口的特性。

实现

要实现一个接口,可以使用implements操作符。类中必须实现接口中定义的所有方法,否则会报一个fatal错误。如果要实现多个接口,可以用逗号来分隔多个接口的名称。

注意:

1、实现多个接口时,接口中的方法不能有重名。

2、接口也可以继承,通过使用extends操作符。

常量

接口中也可以定义常量。接口常量和类常量的使用完全相同。 它们都是定值,不能被子类或子接口修改。

接口代码示例

<?php
 
// 声明一个'iTemplate'接口
interface iTemplate
{
 public function setVariable($name, $var);
 public function getHtml($template);
}
 
 
// 实现接口
// 下面的写法是正确的
class Template implements iTemplate
{
 private $vars = array();
 
 public function setVariable($name, $var)
 {
 $this->vars[$name] = $var;
 }
 
 public function getHtml($template)
 {
 foreach($this->vars as $name => $value) {
  $template = str_replace('{' . $name . '}', $value, $template);
 }
 
 return $template;
 }
}
 
// 下面的写法是错误的,会报错:
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
 private $vars = array();
 
 public function setVariable($name, $var)
 {
 $this->vars[$name] = $var;
 }
}
?>

更多相关教程请访问Gxlcms。

热心网友 时间:2022-04-07 07:20

interface是接口,abstract class是抽象类,可以把接口理解成特殊的抽象类。
在实现类里实现interface,里边的方法都必须重写。但是实现类继承abstract class,里边的方法可以只写自己需要重写的方法。一般情况下都是接口先找到抽象类,实现类继承抽象类方法重写。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
尼康s70的主要性能 聚酯纤维弄上油怎么洗聚酯纤维弄上油如何洗 聚酯纤维沾油了怎么洗 明明累却睡不着怎么回事 累的睡不着觉怎么办 千锋、黑马程序员、动力节点IT培训怎么样 传智播客前端培训怎么样? 传智播客的新媒体运营培训课程怎么样 传智播客就业怎么样 传智播客的Java培训怎么样? php中abstract与interface区别? PHP的抽象类,接口类的区别和选择 php的抽象类和接口的区别 关于novell网络操作系统 windows NT中NT是什么的简称?NOVELL是什么操作系统? 工程合同纠纷哪些法院具有管辖权 合同纠纷案件如何确定管辖法院 建设工程专属管辖 最高人民法院关于如何确定加工承揽合同履行地问题的函 特殊地域管辖之合同纠纷的管辖有哪些 货物购销合同中约定管辖地如何进行理解? 承揽合同是否专属管辖 什么是承揽合同的管辖权 民法典规定承揽合同属于专属管辖吗 请推荐好用的手机电视直播软件 计算机网络分为局域网城域网广域网属于局域网的是?()a chinaDDN网 b Novell网 c chinanet网 d intemet 下载的手机清闲电视和腾讯视频用的都是一样的流量吗? 怎么用手机看春晚直播,同步 在哪可以看东方卫视直播,要不卡的高清的。 霸气冷酷的名字两个字到三个字的,不是网名哦! php面向对象为什么要用接口、抽象类,他们又各自扮... php 什么情况用接口和抽象类 php interface 和抽象的区别 php的抽象类和普通类的区别是什么 php为什么要引入接口类,抽象类 在php中抽象类实现接口?具体给例子解释一下! 在PHP中,何时用抽象类,何时用接口 怎么在PHP中定义和使用接口interface php什么时候使用抽象类 接口 php中的接口是指什么? Java中interface和abstract类的区别?ASP、PHP、JS... PHP抽象类是个规则吗?大概什么情况用到抽象类呢?... PHP与MySQL权威指南的目录 NOVELLNETWARE平台是什么 签订劳务分包合同要注意什么 劳务分包合同定义是什么? 劳务分包合同属于什么合同 劳务分包合同的合同范本 劳务承包合同与劳务分包合同的区别 劳务分包合同效力如何认定