网站的新闻栏与产品栏如何做,重庆网站开发服务器,怎么用自己的电脑做网站主机,购买网站空间多少钱搜索热词PHP 类是单继承#xff0c;也就是不支持多继承#xff0c;当一个类需要多个类的功能时#xff0c;继承就无能为力了#xff0c;为此 PHP 引入了类的接口技术。如果一个抽象类里面的所有方法都是抽象方法#xff0c;且没有声明变量#xff0c;而且接口里面所有的成…搜索热词PHP 类是单继承也就是不支持多继承当一个类需要多个类的功能时继承就无能为力了为此 PHP 引入了类的接口技术。如果一个抽象类里面的所有方法都是抽象方法且没有声明变量而且接口里面所有的成员都是 public 权限的那么这种特殊的抽象类就叫 接口 。接口使用关键字 interface 来定义并使用关键字 implements 来实现接口中的方法且必须完全实现。类中接口的应用1.关键字interface2.关键字implements1.接口的介绍与创建接口一种成员属性全部为抽象或常量的特殊抽象类。规则1.类中全部为抽象方法。2.抽象方法钱不用加abstract。3.接口抽象方法属性为public。4.成员属性必须为常量。格式代码如下:PHP;interface demo {const NAME 常量对象属性;function fun1();function fun2(); //抽象方法。}2.接口的应用与规范接口引用区别于类继承关键字 extends 继承只能只是单一性而接口可以使用关键字 implements 多个引用并用逗号分开1.格式普通类引用接口PHP;class MyPc implements demo,demo2,demo3 {...}2.格式抽象类应用接口例子PHP;abstract class MyPc implements demo,demo3 {...}3.格式继承父类引用接口并存PHP;class MyPc extends Root implements demo,demo3 {...}先继承后接口单继承多接口。4.格式接口与接口的继承PHP;interface demo3 extends demo {...}实例代码如下:PHP;PHPinterface demo {const NAME 名称;function fun1();function fun2();}interface demo2 {function fun3();function fun4();}interface demo3 {const TEST Test;function fun5();}class MyPc implements demo,demo2 {function fun1() {echo ;}function fun2() {echo ----------;}function fun3() {echo 1111111111;}function fun4() {echo 2222222222;}}class MyPs extends MyPc implements demo3 {function fun5() {echo 继承类后引用接口;}}$p new MyPs;$p-fun1();$p-fun2();$p-fun3();$p-fun4();$p-fun5();?例,接口使用关键字 interface 来定义并使用关键字 implements 来实现接口中的方法且必须完全实现。实例代码如下:PHP;discount;}function getUserType() {return VIP用户;}}class Goods{var $price 100;var $vc;//定义 User 接口类型参数这时并不知道是什么用户function run(User $vc){$this-vc $vc;$discount $this-vc-getDiscount();$usertype $this-vc-getUserType();echo $usertype.商品价格.$this-price*$discount;}}$display new Goods();$display -run(new VipUser); //可以是更多其他用户类型?运行该例子输出VIP用户商品价格80 元该例子演示了一个 PHP 接口的简单应用。该例子中User 接口实现用户的折扣而在 VipUser 类里面实现了具体的折扣系数。最后商品类 Goods 根据 User 接口来实现不同的用户报价。该例子仅限于演示 PHP 接口的用法不涉及其科学与否。实现多个接口PHP也可以在继承一个类的时候同时实现多个接口PHP;class 子类 extends 父类 implemtns 接口1,接口2,...{......}抽象类和接口的区别接口是特殊的抽象类也可以看做是一个模型的规范。接口与抽象类大致区别如下1.一个子类如果 implements 一个接口就必须实现接口中的所有方法(不管是否需要)如果是继承一个抽象类只需要实现需要的方法即可。2.如果一个接口中定义的方法名改变了那么所有实现此接口的子类需要同步更新方法名而抽象类中如果方法名改变了其子类对应的方法名将不受影响只是变成了一个新的方法而已(相对老的方法实现)。3.抽象类只能单继承当一个子类需要实现的功能需要继承自多个父类时就必须使用接口。PHP;name;}}class Teacher implements TeacherInterface{ //实现teacher接口private $age23;public function getLengthofService(){return $this-age;}}$usernew User();echo $user-getName().;//nostop$teachernew Teacher();echo $teacher-getLengthofService().;//23//继承类实现接口class GraduResultudent extends User implements TeacherInterface{ //继承User类 实现接口private $teacher;public function __construct(){ //定义构造函数$this-teachernew Teacher(); //实例化Teacher对象}public function getLengthOfService(){ //实现TeacherInterface接口的方法return $this-teacher-getLengthOfService();}}class Result{public static function getUserName(UserInterface $_user){ //注意这里面的类型变成接口类型echo Name is .$_user-getName().;}public static function getLengthOfService(TeacherInterface $_teacher){ //注意这里面的类型变成接口类型echo age is .$_teacher-getLengthOfService();}}$objectnew GraduResultudent();Result::getUserName($object); //Name is nostopResult::getLengthOfService($object); //age is 23echo ;//接口实现用户的折扣interface People{ //定义接口function getUserType();function getCount();}class VipUser implements People{ //实现接口//用户折卡系数private $discount0.8;function getUserType(){return VIP用户;}function getCount(){return $this-discount;}}$vipnew VipUser(); //实现化对象echo $vip-getUserType().商品价格.$vip-getCount()*100; //VIP用户商品价格80class Goods{var $price100;var $member;function run(People $member){ //注意这里面的参数类型是接口类型$this-member$member;$discount$this-member-getCount();$usertype$this-member-getUserType();echo $usertype.商品价格.$this-price*$discount;}}$displaynew Goods();$display-run(new VipUser);//VIP用户商品价格80?总结以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作能带来一定的帮助如有疑问大家可以留言交流谢谢大家对编程之家的支持。总结如果觉得编程之家网站内容还不错欢迎将编程之家网站推荐给程序员好友。本图文内容来源于网友网络收集整理提供作为学习参考使用版权属于原作者。