php抽象类和接口的区别

抽象类和接口的关系:抽象类是一种特殊的类,接口是一种特殊的抽象类
抽象类

    什么是抽象方法:如果一个类中的方法,没有方法体的方法就是抽象方法(就是一个方法没有使用{},而直接使用分号结束)
        例:abstract function test();        //抽象方法
            如果一个方法是抽象方法,就必须要用abstract修饰
            
    什么是抽象类:
        1.如果一个类中有一个方法是抽象的,那这个类就是抽象类
        2.如果一个类是抽象类,那么这个类必须要使用 abstract 修饰
        3.抽象类是一种特殊的类,就是因为类中至少有一个抽象方法,其他不变,也可以在抽象类中声明成员属性,常量,非抽象的方法
        4.抽象类不能实例化对象
                
        抽象类的作用:要想使用抽象类,就必须使用一个类继承抽象类,而且要想使用这个子类,也就是让子类可以创建对象,子类就不能是抽象类了,子类可以重写父类的方法(给抽象方法加上方法体)。
                      抽象方法中的方法没有方法体,子类必须实现这个方法(父类中没写具体的实现,但子类必须有这个方法名),就是在定义一些规范,让子类按照这个规范实现自己的功能
                      
        目的:就是要将你自己写的程序模块加入到原来写好的程序中去(别人写好的程序,不能等你开发完一个小模块,根据你的小模块继续向下开发)
        
        
    接口
        接口和抽象类的作用是一样的
        因为php是单继承的,如果使用抽象类,子类实现完抽象类就不能继承其他的类了,如果既想实现一些规范,又想继承及其他的类,那么就要使用接口
        接口和抽象类的对比:
            1.作用相同,都不能创建对象,都需要子类去实现
            2.接口的声明用(interface)和抽象类(abstract)不一样
            3.接口被实现的方法不一样
            4.接口中的所有方法都必须是抽象方法(不能使用 abstract)
            5.接口中的成员属性只能声明常量不能声明变量
            6.接口中的成员访问权限都必须是 public ,抽象类中的权限是 public,protected
            7.使用一个类继承接口要用 implements 而不是用 extends,可以使用抽象类去实现接口中的部分方法,如果想让子类可以创建对象,则必须实现接口中所有抽象方法,如果子类是重写父接口中的抽象方法,则使用implements (类---接口,抽象类---接口  都使用 implements,接口---接口 extends)
            8.一个类可以实现多个接口(按多个规范去开发子类),使用逗号分隔多个接口名称,一个类在继承一个类的同时可以去实现一个或多个接口(先继承再实现)
            
            
        使用implements的两个目的
            1.可以实现多个接口,而extends只能继承一个
            2.没有使用extends,可以去继承一个类,所以两个可以同时使用
            

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值