php面向对象什么是接口,PHP面向对象之接口

接口是一种比抽象类更抽象的语法结构,只包含常量和抽象方法。它用于规定类的行为,实现了多继承的特性。在Java中,类可以实现多个接口,而接口之间可以继承。接口是面向对象编程中模拟多继承的一种方式,有助于降低复杂度并提供规范。类通过实现接口,可以获得接口中定义的抽象方法和常量。接口的使用增强了代码的灵活性和设计的多样性。
摘要由CSDN通过智能技术生成

接口(interface)技术

什么是接口?

先看抽象类:

abstract  class  类名  {

属性1;

属性2;

.....

非抽象方法1;

非抽象方法2;

......

抽象方法1;

抽象方法2;

......

}

设想,将上述抽象类中“实在的成员”,删除,即删除那些非抽象的成员。则,自然该抽象类中,就只有抽象方法;

abstract  class  类名  {

抽象方法1;

抽象方法2;

......

}

由此,可以理解为:这个抽象类,“太抽象了”,几乎自己什么都没做,就光让别人做什么。

那么:

接口就是这样一个“天然不实在”的家伙:

接口,就是规定,里面只能放“抽象方法”和“常量”的一种类似类的语法结构;

——可见,接口就是“比抽象类更抽象的”一种语法结构。

接口(interface)定义形式:

interface  接口名{

常量1;

常量2;

.....

抽象方法1;

抽象方法2;

.....

}

说明:

1,可见,接口中,只有常量(接口常量)和抽象方法两种成员;

2,接口常量的使用形式为: 接口名称::常量名称;

3,接口中的抽象方法,不要使用abstract修饰,也不需要使用访问控制修饰符,因为其天然就是public

d18128139ed1201b5a6c8eedbd483c7f.png

为什么需要接口?

面向对象编程思想是对“现实世界”的描述(模拟)!

现实世界往往都都是多继承的;

但:

出于降低类跟类之间关系的复杂度的考虑,就将语言设计为单继承的;

但这样,就无法表达出现实世界的多继承特性;

则:

接口就是对没有多继承的类之间关系的一个补充;

因为:接口可以实现“多继承”——但此时不称为继承而已,而是称为“实现”;

即:

接口1  -->> 类1;

就称为:类1实现了接口1;

其本质,其实就是类1中,有了接口1中“特征信息”;

使用形式:

形式为:

class  类名  implements  接口名1, 接口名2, ....{

//类的定义。

}

这里,叫做,类实现了接口。

b1b0e71009293d84024d96e42a433a75.png

其中,接口跟接口之间,也可以继承,跟类之间的继承:

interface  接口1  extends  接口2{

//接口的成员定义;。。。。

}

类和接口的大总结

72f3f487ca3eb9550936026cdc847670.png

f0fb25088da84967dcbf99c156994514.png

Java面向对象:接口

Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

Python面向对象之接口类(抽象类)

Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...

Java学习笔记(六):面向对象、接口和抽象类

类和对象 Java是一门面向对象的语言,下面我们来了解一下Java中的面向对象. 方法和重载 Java中的方法格式如下: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } Java的方法支持重载 ...

《java入门第一季》之面向对象(接口收尾)

通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: ...

day 25 面向对象之接口、抽象类、多态、异常处理、反射、断言

复习 '''继承​1.父类:在类后()中写父类们class A:passclass B:passclass C(A, B):pass​2.属性查找顺序:自己 -> ()左侧的父类 -> 依 ...

面向对象php 接口 抽象类

1.定义类和实例化对象: 使用关键字class定义类,使用new实例化对象: 2.类成员的添加和访问: 类成员:有属性,方法,常量(常量名不带$符): 访问属性的时候,变量名不带$符 添加属性需要使用 ...

python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

Java 面向对象之接口、多态

01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...

随机推荐

HBase配置项详解

hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name}: hbase.rootdir:hb ...

centos手动配置IP和DNS

手动设置ip地址 如果虚拟机不能自动获取IP,只能手动配置,配置方法如下: 输入命令 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] ...

Python 第五天

函数式编程 高阶函数 1.变量可指向函数 func = abs print(func(-1)) #1 2.函数可以作为参数传入另外的函数这也就是高阶函数 def add(x,y,func): prin ...

BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】

1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 4813  Solved: 2877[Submit][Stat ...

windows 查看端口被哪个程序占用

比如查看端口8080 1. 查看占用端口8080对应的PID,输入命令:netstat -aon|findstr "8080" (加入查到pid为111222) 2. 继续输入ta ...

逆向学习-PE文件格式

从DOS头到节区头是PE头部分,其下的节区合称PE体.文件中使用偏移(offset),内存中使用VA(Virtual Address,虚拟地址)来表示位置.文件加载到内存时,情况就会发生变化(节区的大 ...

[Swift]LeetCode295. 数据流的中位数 | Find Median from Data Stream

Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

Angular6封装http请求

最近抽空学习了一下Angular6,之前主要使用的是vue,所以免不了的也想对Angular6提供的工具进行一些封装,今天主要就跟大家讲一下这个http模块. 之前使用的ajax库是axios,可以设 ...

Java位运算加密

创建一个类,通过位运算中的”^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,再与那个指定的 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值