php接口中的interface如何使用

网友投稿 178 2024-02-03


php接口中的interface如何使用

本文主要介绍"php接口中的interface怎么使用",希望能够解决您遇到有关问题,下面我们一起来看这篇 "php接口中的interface怎么使用" 文章。

1、说明

接口中的方法都是抽象方法,并且是public。

2、接口同样可以继承接口,但是子类必须实现所有方法

interface E extends A {     //接口E继承接口A,E中必须实现A中所定义的方法 }

3、实现多重继承:

我们都知道PHP中的类(class)是单继承的,那是不是就没有办法实现多重继承了呢?答案是否定的.我们可以通过其它特殊的方式实现类的多重 继承,比如使用接口interface实现,只要把类的特征抽象为接口,并通过实现接口的方式让对象有多重身份,通过这样就可以模拟多重继承了。

下面是一个用接口(interface)实现多重继承的例子,源代码如下:

<?php interface UserInterface{ //定义User的接口 function getname(); } interface TeacherInterface{ //teacher相关接口 function getLengthOfService(); } class User implements UserInterface { //实现UserInterface接口 private $name = "tom"; public function getName(){ return $this->name; } } class Teacher implements TeacherInterface { //实现TeacherInterface接口 private $lengthOfService = 5; // 工龄 public function getLengthOfService(){ return $this->lengthOfService; } } // 继承自User类,同时实现了TeacherInterface接口. class GraduateStudent extends User implements TeacherInterface { private $teacher ; public function __construct(){ $this->teacher = new Teacher(); } public function getLengthOfService(){ return $this->teacher->getLengthOfService(); } } class Act{ //注意这里的类型提示改成了接口类型 public static function getUserName(UserInterface $_user){ echo "Name is " . $_user->getName() ."<br>"; } //这里的类型提示改成了TeacherInterface类型. public static function getLengthOfService(TeacherInterface $_teacher){ echo "Age is " .$_teacher->getLengthOfService() ."<br>"; } } $graduateStudent = new GraduateStudent(); Act::getUserName($graduateStudent); Act::getLengthOfService($graduateStudent); //结果正如我们所要的,实现了有多重身份的一个对象. ?>

PHP编程技术

本文主要介绍"php框架的知识点有哪些",希望能够解决您遇到有关问题,下面我们一起来看这篇 "php框架的知识点有哪些" 文章。1、AkelosAkelosPHP框架是RubyonRails相似的框架,是基于MVC ...


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C#中如何利用类实现一个接口
下一篇:Golang空接口与类型断言的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~