zoukankan      html  css  js  c++  java
  • PHP接口学习

    接口:不同类的共同行为进行定义,然后在不同类中实现不同的功能。

    接口的具体语法:

    1. 接口是零件可以用多个零件组成一个新东西;

    2. 接口本身是抽象的,内部申明的方法也是抽象的; 不用加abstract

    3. 一个类可以一次性实现多个接口。语法用implements实现,然后在把接口的功能实现;

    4. 接口也可以基继承,用extends;

    5. 接口是一堆方法的说明,不能加属性(成员变量);

    6. 接口就是供组装成类用的,方法只能用public;

    接口作为一种严格规范 降低开发者与调用者的沟通

    1、接口实现
    举例 人类、动物实现某个动作
    定义接口

    1. interface Action()
    2. //接口定义‘public’访问属性方法,无需实现方法 
    3. public function eat( $foods )
    4.  

    5.  

    Human ( Animl ) 类实现接口

    1. class Human implements Action()
    2. //实现接口,必须提供接口中定义的方法 
    3. public function eat( $foods)
    4. echo "Human eat {$foods}"

    5.  

    6.  
    7. #Animal类 
    8. class Animal implements Action()
    9. public function eat( $foods)
    10. echo "Animal eat {$foods}"

    11.  

    Human( Animal )实现eat的动作:

    1. $human = new Human(); 
    2. $human->eat(); 
    3.  
    4. $animal = new Animal(); 
    5. $animal->eat(); 

    instanceof 判断某个对象是否实现了某个接口

    1. function CheckEat( $obj )
    2. if( $obj instanceof Action ){ 
    3. $obj->eat( 'orange' ); 
    4. }else
    5. echo "the object not implements Action"


    6. CheckEat( $human ); 
    7. CheckEat( $animal ); 

    2、接口继承

    1. //extends 让接口继承接口 
    2. interface IcanPee extends Action()
    3. public function pee()

    4.  
    5. //当类实现子接口时,父接口定义的方法也需要在这个类里面具体实现 
    6. Class Human1 implements IcanPee()
    7. public function pee(){ } 
    8. public function eat( $foods ){ } 

    • 某个类实现(implements)了某个接口和继承(extends)了某个类的区别?

      • 实现接口和继承很类似,但接口不能直接创建自己的对象

      • 继承的父类必须有该方法的具体实现,子类可以重写父类的方法,也可以不写

      • 接口里面的方法是不需要具体实现的,只要定义了方法的名称和参数即可,具体的实现必须在实现类中定义

      • 一句话概括: 类的方法必须有实现,接口的方法必须为空

  • 相关阅读:
    grid与oracle用户下oracle程序权限不一致导致无法连接ASM问题
    错误ORA-29760: instance_number parameter not specified的解决办法
    window phone webclient xml 乱码解决方法
    谈谈layout-weight
    状态栏更改颜色
    android 顶部导航栏
    android 布局抽取优化
    Kotlin版HelloWorld
    浅谈synchronized作用
    android获取Tomcat的JSON数据
  • 原文地址:https://www.cnblogs.com/followyou/p/6528329.html
Copyright © 2011-2022 走看看