PHP 面向对象 接口

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

要实现一个接口,使用 implements 操作符。

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

接口可以继承另一个接口,接口可以一次继承多个接口。

interface D
{
    public function fun4();
}

interface A
{
    // 接口常量不能被子类覆盖

    const A=1;

    // 接口中的方法都没有具体实现

    public function fun1();

    public function fun2($num);
}

// 一个类可以实现多个接口

class B implements A, D
{

    // 子类中必须实现接口中定义的所有方法

    public function fun1()
    {
        echo __FUNCTION__;
    }

    // 参数要求与抽象类一致

    public function fun2($num, $num2=0)
    {
        echo $num;
    }

    public function fun3()
    {
        echo __FUNCTION__;
    }

    public function fun4()
    {
        echo __FUNCTION__;
    }
}

// 接口不能被实例化

$b=new B();

$b->fun1();

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

Kotlin学习之常用高阶函数:filter

Kotlin学习之常用高阶函数:filter Kotlin高阶函数一般是数组、集合、序列等数据结构的扩展函数,接收一个操作函数对数据进行操作,在Kotlin函数...

239100
来自专栏康怀帅的专栏

PHP 面向对象 抽象类

使用 abstract 关键字申明抽象类和抽象方法。抽象类不能被实例化,只能被其他类继承。 abstract class A { // 抽象方法没有函数...

33260
来自专栏开发与安全

从零开始学C++之类与对象:类声明、类作用域、前向声明、this指针、嵌套类、PIMPL 技法 等

一、类声明 //类是一种用户自定义类型,声明形式: class 类名称 {    public:              公有成员(外部接口)   ...

24600
来自专栏java学习

Java每日一练(2017/6/15)

题目要求 本期题目: 1、(单选题) What will be printed when you execute the following code? cla...

359100
来自专栏代码世界

Python基础数据类型之字典

 基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型。 不可变数据类型:元组(tupe)、布尔值(bool)、整数型(int)、字符串(str...

35790
来自专栏alexqdjay

angularjs源码笔记(5.1)--parse

27950
来自专栏技术博客

C#委托二(委托类型)

既然叫做委托类型,就说明MyDelegate实际上是一个类,上面的写法只是一种简单的缩略写法,实际上,我们自己定义的委托,都是继承自System.Multica...

7610
来自专栏我和未来有约会

Js中的变量

Js中的变量:  1:如果在var中没有初始化变量的值,则默认为undefined.  2:可以不用var来申明一个变量,但是在过程级中申明一个变量时,就必须用...

28460
来自专栏一个会写诗的程序员的博客

函数式编程与面向对象编程[4]:Scala的类型关联Type Alias函数式编程与面向对象编程[4]:Scala的类型关联Type Alias

scala里的类型,除了在定义class,trait,object时会产生类型,还可以通过type关键字来声明类型。

11930
来自专栏机器学习入门

LWC 60:736. Parse Lisp Expression

LWC 60:736. Parse Lisp Expression 传送门:736. Parse Lisp Expression Problem: You a...

23370

扫码关注云+社区

领取腾讯云代金券