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 这两种方法,在下一篇随笔会详细介绍着两种方法的区别 以及如何使用

原文地址:https://www.cnblogs.com/xiaodouding/p/6396598.html