后端开发|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?>