多平台统一管理软件接口,如何实现多平台统一管理软件接口
193
2024-02-03
本文主要介绍"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框架的知识点有哪些" 文章。1、AkelosAkelosPHP框架是RubyonRails相似的框架,是基于MVC ...
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~