首页 > 其他 > 详细

抽象类与接口

时间:2014-03-10 05:13:08      阅读:500      评论:0      收藏:0      [点我收藏+]
抽象类的实际意义: 抽象类是类的模板。当你发现很多类的某些方法在不断重复写,这时可以考虑使用抽象类。
抽象类的特点:
  1. 类前加 abstract 是抽象类(如:abstract class lijian)。
  2. 方法名前加 abstract 是抽象方法(如:abstract public function show(){} )。
  3. 抽象类不能被实例化,只可以被继承,它的意义在于被扩展。
  4. 当一个类继承自一个抽象类时,此类继承过来的抽象方法必须一一实现。否则同样无法实例化。
  5. 抽象类中不光可以抽象方法,也可以有普通方法。
  6. 抽象类的方法可以有参数,也可以为空, 如果抽象方法有参数,那么子类的实现也必须有相同的参数个数  。
  7. 方法的权限必须是public

 

接口的实际意义: 当多人协作开发,需要调用别人的类,我如何知道某个功能的实现方法是怎么命名呢?这时候用接口就很方便了。因为类继承接口时,接口的方法必须一一实现。
接口的特点:
  1. 接口的方法必是抽象方法,所以不能用方法体
  2. 一个类可以继承多个接口 class lijian implements one,two,three
  3. 接口可以被继承,用extends
  4. 接口方法的权限必须是public
  5. 接口不能有属性,可以用常量

 

抽象类和接口的区别

接口是一个特殊的抽象类,也可以看作是一个模型的规范。接口与抽象类大致区别如下:
  1. 一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要);如果继承一个抽象类,只需要实现需要的方法即可
  2. 如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名;而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已
  3. 抽象类只能单继承,当一个子类需要实现的功能需要继承多个父类时,就必须使用接口

 

代码示例

 

bubuko.com,布布扣
<?php  
    //抽象类  
    abstract class Flyidea
    {   
         //抽象方法
         abstract public function engine();
        
         //普通方法
         public function echo123(){
            echo 123;
         }
    }  
  
    //继承抽象类
    class lijian extends Flyidea
    {  
        //将继承的抽象方法实现。
        public function engine(){
            echo ‘实现了‘;
        }
    }    
?>
bubuko.com,布布扣

 

 

 

bubuko.com,布布扣
<?php
    
     //接口
     interface love
     {
         public function a();
     }
    
      interface test extends love
      {
         public function b();
      }

     //继承接口
     class lijian implements test
     {
        public function a(){}
        public function b(){}
     }
    
?>
bubuko.com,布布扣

 

抽象类与接口,布布扣,bubuko.com

抽象类与接口

原文:http://www.cnblogs.com/tlijian/p/3590523.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!