zoukankan      html  css  js  c++  java
  • PHP 抽象类 和 interface 接口

    静态:

    在类里面 定义的变量   在别的地方引用的时候 只要是  静态引用 就一定要加$

    普通成员 : 属于对象的

    静态成员: 属于类的  static  (通过双冒号调用) 

    调用静态成员:   ren::$zhongzu=”站点”   

     函数(方法 ) 也可以 做成静态的  通过 双冒号 调用 格式:  类名::调用的成员 

    构造方法  做成私有 外界访问不到 类里面   成员不能用   这时可以使用 静态  不需要 初始化   直接用类名 和双冒号  调用

    静态成员和普通成员调用时的区别:

    静态成员的 调用 可以放在任何位置(普通成员里面可以调用静态成员)

    普通成员里不能调用静态成员(原因: 静态方法是属于类的  调用的时候 不需要建立对象  普通成员 是属于对象的 使用前必须建立对象)

    self  在类里面 表示该类  (只可以在 类里面用 花括号 内部)

    $this  在对象里面表示该对象  

    class ren
    {
        public static  $name;
        public static $age;
        function say()
        {}
    }
    class china extends ren
    {
        function say()
        {
            echo self::$name."中国人".self::$age;//这里面 既可以用self 也可以用  ren(父类名)---变量名  加$
            
            }
        
        }
    ren::$name="斗破";//这里面只可以用父类名; 后面的变量名 要加&
    ren::$age=18;
    $bb=new china();
    $bb->say()
    
    static 例题 注意 注解
    

      

    2.

    抽象类:

    抽象类 不能被实例化

    为了作为父类使用(让子类来继承)  

    在类前 加一关键字  abstruct  就变成一个抽象 类

    抽象类  赋值普通 类赋值一样   只需要 对子类初始化  在子类里面赋值(因为子类可以继承父类的一切)

      (子类对父类的方法 进行重写 )

    (return)

    扩展性好

    abstract class YunSuan
    {
        public $a;
        public $b;
        
        function Suan()
        {
        }
    }
    
    class Jia extends YunSuan
    {
        function Suan()
        {
            return $this->a+$this->b;
        }
    }
    
    class Jian extends YunSuan
    {
        function Suan()
        {
            return $this->a-$this->b;
        }
    }
    
    class Cheng extends YunSuan
    {
        function Suan()
        {
            return $this->a*$this->b;
        }    
    }
    
    $jia = new Cheng();
    $jia->a=10;
    $jia->b=5;
    echo $jia->Suan();
    

      

    3.接口:

    关键词: interface        impliments

    接口: 极度抽象的类

    接口里面方法  没有函数体 只声明函数名

    接口定义 (命名 以I 开头)

    接口 是作为父类存在的  接口里面出现的方法(控制子类必须实现)

    每个子类里面必须实现(实现所有 内容少一个则报错)  (必须写函数名+函数体)

    接口相当于  目录(公司规范)

    interface IUSB
    {    
        function Read(); //接口里面只声明函数名
        function Write(); 
    }
    
    class ShuBiao implements IUSB
    {
        function Read()
        {
            echo "鼠标插上了";
        }
        function Write()
        {
            echo "给鼠标传了数据";
        }
    }
    
    $s = new ShuBiao();
    $s->Read();
    

      

  • 相关阅读:
    【RF库Built-In测试】Catenate
    SpringMVC系列(十四)Spring MVC的运行流程
    SpringMVC系列(十三)异常处理
    SpringMVC系列(十二)自定义拦截器
    SpringMVC系列(十一)把后台返回的数据转换成json、文件下载、文件上传
    SpringMVC系列(十)<mvc:default-servlet-handler/>(处理静态资源)和<mvc:annotation-driven />
    SpringMVC系列(九)自定义视图、重定向、转发
    SpringMVC系列(八)国际化
    SpringMVC系列(七)视图解析器和视图
    SpringMVC系列(六)处理模型数据
  • 原文地址:https://www.cnblogs.com/hao0/p/6564114.html
Copyright © 2011-2022 走看看