100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > php中接口与抽象类区别及如何定义和继承接口实例代码详解

php中接口与抽象类区别及如何定义和继承接口实例代码详解

时间:2018-12-29 02:31:48

相关推荐

php中接口与抽象类区别及如何定义和继承接口实例代码详解

后端开发|php教程

php,义和,如何

后端开发-php教程

抽象类和接口的区别

vb源码 汽车维修管理系统,vscode 选中代码块,ubuntu后优化,tomcat 不自动解压,借助爬虫技术,php 类函数递归,阜阳seo推广收费贵吗,房屋中介网站源代码,帝国博客自适应模板lzw

接口是特殊的抽象类,也可以看做是一个模型的规范。接口与抽象类大致区别如下:

安卓 zigbee 项目源码,ubuntu使用make,使用不了tomcat,uibot反爬虫,php累还是web前端累,天津怎么学seo网络推广靠谱lzw

一个子类如果 implements 一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可。

h5信息分类源码,ubuntu收发邮件,哪些语言能写爬虫,函数+php,日照seo策略lzw

如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已(相对老的方法实现)。

抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。

代码示例:

name; }}class Teacher implements TeacherInterface{ //实现teacher接口 private $age=23; public function getLengthofService(){ return $this->age; }}$user=new User();echo $user->getName().

;//nostop$teacher=new Teacher();echo $teacher->getLengthofService().

;//23//继承类实现接口class GraduResultudent extends User implements TeacherInterface{ //继承User类 实现接口 private $teacher; public function construct(){//定义构造函数 $this->teacher=new 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(); }}$object=new GraduResultudent();Result::getUserName($object); //Name is nostopResult::getLengthOfService($object); //age is 23echo "

";//接口实现用户的折扣interface People{ //定义接口 function getUserType(); function getCount();}class VipUser implements People{ //实现接口 //用户折卡系数 private $discount=0.8; function getUserType(){ return "VIP用户"; } function getCount(){ return $this->discount; }}$vip=new VipUser(); //实现化对象echo $vip->getUserType().商品价格:.$vip->getCount()*100; //VIP用户商品价格:80class Goods{ var $price=100; var $member; function run(People $member){ //注意:这里面的参数类型是接口类型 $this->member=$member; $discount=$this->member->getCount(); $usertype=$this->member->getUserType(); echo $usertype."商品价格:".$this->price*$discount; }}$display=new Goods();$display->run(new VipUser);//VIP用户商品价格:80?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。