当前位置: 首页 > 后端技术 > PHP

PHP类的接口和实现关键字PHP接口

时间:2023-03-29 19:51:57 PHP

PHP接口PHP类是单继承的,即不支持多继承。当一个类需要多个类的功能时,继承就无能为力了。为此,PHP引入了Class接口技术。如果一个抽象类中的所有方法都是抽象方法,并且没有声明变量,接口中的所有成员都是public权限,那么这个特殊的抽象类就称为接口。接口是使用关键字interface定义的,接口中的方法是使用关键字implements实现的,并且必须完全实现。例子:折扣;}functiongetUserType(){return"VIP用户";}}商品类{var$price=100;变种$VC;//定义User接口类型参数,此时不知道是什么Userfunctionrun(User$vc){$this->vc=$vc;$discount=$this->vc->getDiscount();$usertype=$this->vc->getUserType();回显$用户类型。"产品价格:".$this->price*$discount;}}$display=newGoods();$display->run(newVipUser);//可以多一些其他用户类型吗?>运行这个例子,输出:VIP用户的商品价格:80元这个例子演示了一个PHP接口的简单应用。本例中,User接口实现了用户的折扣,具体的折扣系数在VipUser类中实现。最后商品类Goods根据User接口实现不同的用户报价。本例仅限于演示PHP接口的使用,不涉及其科学与否。实现多个接口PHP在继承一个类的时候也可以同时实现多个接口:classsubclassextendsparentclassimplemtnsinterface1,interface2,...{...}abstractclass和interface1的区别接口是一个特殊的抽象类,也可以看作是一个模型的规范。接口和抽象类的一般区别如下:如果子类实现了接口,则必须实现接口中的所有方法(无论是否需要);如果继承了一个抽象类,只需要实现需要的方法即可。2、如果一个接口中定义的方法名发生变化,则所有实现该接口的子类都需要同步更新方法名;而如果抽象类中的方法名发生变化,则子类对应的方法名不会受到影响,只是改变了一个新的方法而已(相对于旧方法的实现)。3.抽象类只能单继承。当一个子类需要实现需要从多个父类继承的功能时,就必须使用接口。来自:http://www.5idev.com/p-php_cl…