zoukankan      html  css  js  c++  java
  • php 静态成员(static)抽象类(abstract)和接口(interface)

    首先看一下静态成员(static)和普通成员(public; protect; private)的区别:

    静态成员是属于类的,普通成员是属于对象的; 例如:

    <?php
    header("Content-type:text/html;charset=utf-8"); //以防出现乱码
    
    class fenbi
    {
         public $length;
         public  static $color;
         static function show()
    {
            echo "粉笔的颜色:" ,self:: $color;  //静态成员的表示方法;静态方法里面无法调用普通成员
    }
         function xianshi()
    {
           echo"显示:".self::$color; // 普通方法里面可以调用静态成员
    }
        
    }
    
    $f=new fenbi();  //把类实例化
    fenbi::$color="蓝色"$f->show();
    $f->xianshi(); //$color无法实例化
    ?>

    其次是抽象类,抽象类关键词是abstract; 特点是:不能被实例化,只能被继承; 目的:为了派生子类,控制子类

    <?php
    
     header("Content-type:text/html;charset=utf-8");
    
    abstract class dog
    {
         function jiao()
    {
         echo "汪汪";
    }
    }
    class jinmao extends dog   // 用类jinmao继承dog
    {
    }
    
    $d=new dog(); //这个地方这么写是错误的,抽象的类是无法实例化的
    
    ?>

    最后是接口,关键词是interface,是极度抽象的类,接口里面不能包含成员变量,只能包含成员方法,成员方法里面可以没有函数体,

    实现接口的类,必须实现接口里面的方法  特点: 命名必须以I开头; 方法是没有具体的内容的; 子类继承的时候用关键词 implement ;

    子类必须重写所有的接口类(父类)方法;

    <?php
    header("conten-type:text/html; charset-utf-8")
    
    interface IUSB
    {
         function write();  //接口里面只能放方法;不可以放变量
         function   read();
    }
    
    class mouse implements IUSB
    {
          function write()
         {  
              echo "点一下鼠标";
         }
           function read()
         {
               echo "给鼠标一个指令";
         }
      
    }
     $m=new mouse();  //接口里面的类是可以实例化的
    $m->write();
    
    ?>

     补充:下午有讲到__tostring/clone的使用方法 以及引用文件等

    <?php
    
    class yue
    {
       function __tostring()
    {
          return"这是tostring的使用方法";
    }
    }
    
    $y=new yue();
    //echo $y;   //讲到这里运用tostring可以直接输出$y
    
    $x=clone $y;
    echo$x          //对$y进行了克隆,输出内容和上面一样
    
    ?>

    引用文件使用的是include 和 requair 这两种方法,在下一篇随笔会详细介绍着两种方法的区别 以及如何使用

  • 相关阅读:
    都在谈零信任,网络安全和零信任架构的核心是什么?
    盘点:区块链有望被主流接纳的四个场景
    同态加密:密码学的下一个黄金时代
    浅谈人工智能应对数字化转型挑战的5个领域
    2021年7项物联网预测
    15分钟=1年!当人工智能遇到材料学……
    人工智能推理的演进
    保护加密货币资产的7种优秀做法
    ES6语法 Promise Iterator
    css阴影框
  • 原文地址:https://www.cnblogs.com/xiaodouding/p/6396598.html
Copyright © 2011-2022 走看看