PHP中抽象类和接口有什么区别

发布时间:2021-02-18 15:02:14

来源:亿速云

阅读:70

作者:Leah

这篇文章将为大家详细讲解有关PHP中抽象类和接口有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

区别:

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

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

abstract class Father {

function meth2() {

echo "meth2...
";

}

abstract function meth3();

public $var1="var1";

public static $var2="var2";

const Var3="Var3";

}

class Son extends Father {

function meth3() {

echo "meth3 of Son...
";

}

}

$s=new Son();

echo $s->var1."
";

echo Father::$var2."
";

echo Father::Var3."
";

Interface IFather {

//public $iVar1="iVar1"; 此处接口定义中不能包含成员变量

//public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量

const iVar3="iVar3";

function iMeth2();

}

Class ISon implements IFather {

function iMeth2() {

echo "iMeth2...
";

}

}

$is=new ISon();

echo IFather::iVar3;

?>

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

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

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

抽象类还是接口

1. 如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。

2. 如果必须从多个来源继承行为,就使用接口。

3. 如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。

关于PHP中抽象类和接口有什么区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

php 抽象类 接口 区别,PHP中抽象类和接口有什么区别相关推荐

  1. java post和put的区别,ES 中的 POST 和 PUT 的区别

    0.什么是Restful架构 比较难说清楚,这部分大雾状态,引ruanyf 理解RESTful架构 的几句总结吧: Fielding将他对互联网软件的架构原则,定名为REST,即Representat ...

  2. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  3. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  4. python __import__和import区别_Python中import 与__import__() 之间的区别比较

    本篇文章给大家带来的内容是关于Python中import 与__import__() 之间的区别比较,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 首先来说一下两者的区别: impo ...

  5. python函数与方法的区别_python中函数和方法有哪些区别

    python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...

  6. vue获取接口数据_c#中HttpWebRequest调用接口获取数据

    c#中HttpWebRequest调用接口获取数据PART  01-封装接口 将post请求进行封装,以便调用使用: /// /// 请求后台地址/// 请求参数/// public string P ...

  7. linux上创建loopback接口,在python中的特定接口的linux loopback接口

    我试图发送一些数据到本地地址,然后使用特定的接口ppp0'转发'到外部地址.我认为我的问题与分组路由/套接字绑定问题有关,但我太多了解它的新手.在python中的特定接口的linux loopback ...

  8. python的元组和列表什么区别_Python 中列表和元组有哪些区别?

    看过了所有的区别,然而所有的区别都基本毫无意义,tuple元组的设计基本是python语言中一个完全失败和错误的设计,然而我们所有人都只敢小说地说啊它们之间有区别,没有人敢说它们没有区别,是因为这是一 ...

  9. java中抽象类的定义_Java中抽象类的定义和使用

    Java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础.指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类是 ...

最新文章

  1. k3 物料收发明细表sql_物料管理:班组长物料使用应知应会4件事
  2. Tower-web 0.3.1/2 发布,类型完善和修复更新
  3. 01丨数据结构:快速的Redis有哪些慢操作
  4. Pandas索引操作及高级索引——reindex()方法
  5. 维信诺全柔AMOLED产线启用 对“加入华为供应链”一事避而不谈
  6. Qt多线程间信号槽传递非QObject类型对象的参数
  7. JavaScript中prompt的使用
  8. 怎样配置VSS2005中文版服务器和客户端
  9. springBoot搭配java小爬虫 获取百词斩单词释义
  10. HTML5网页设计盒子模型-内容+padding+boder+margin
  11. 买了个新主机,从0开始配电脑(持续更新ing)
  12. 个人承接微信H5制作设计,需要的联系我
  13. python处理word_Python操作word手册
  14. GUI 界面的免费音乐下载 支持批量下载
  15. 盘点一下国内智能巡检机器人TOP5
  16. 爬取东方财富网的部分股票信息(2)
  17. zabbix-proxy分布式监控站点
  18. ppt里面怎么打破折号
  19. 常用邮箱导出eml文件
  20. 小白如何快速入门软件测试

热门文章

  1. [BJOI2019]奥术神杖(分数规划+AC自动机+DP)
  2. log4j不生成日志文件的问题
  3. win7下如何建立ftp服务器
  4. 关于计应151/152《软件工程》课程实践的安排
  5. leetcode-Combinations 复习复习排列组合
  6. django - settings.py
  7. learn python the hard way 习题6~10总结
  8. 【洛谷】P1357 花园(状压+矩阵快速幂)
  9. JAVA-常量、运算符、类型转换、Scanner
  10. nuget.server搭建及实际测试