面向对象之静态

1.静态

  静态是和之前做的类的普通成员对应的。类里面的成员可以分为两类,一类是普通成员,另一类是静态成员。之前写的都是普通成员,普通成员是属于对象的。静态成员是属于类的,静态是相对于普通成员来说的。

静态成员的定义:

//静态
//普通成员是属于对象的

//静态成员
//静态成员是属于类的
//关键字:static
//self关键字:在类里面代表类
//在静态方法里面不能调用普通成员
//普通方法里面可以调用静态成员

/*class Fenbi
{
    public $length;//粉笔的长度,定义成普通的成员。
    public static $color;//粉笔的颜色,定义成静态的成员。static定义静态的关键字。
    
    static function Show()//静态成员,里面可以调用静态成员,不可以调用普通成员。
    {
        echo "粉笔颜色是:".self::$color;//self换成类名Fenbi也可以,self在类里面代表该该类,this在类里面代表该对象。
    }
    function Xianshi()//普通成员,里面可以调用普通成员和静态成员。
    {
        echo "显示:".self::$color;
    }
}
$f = new Fenbi();//先造一个对象
$f->length;//用对象去调用普通成员
Fenbi::$color = "红色";
//Fenbi::show();//调用静态方法,不用 Fenbi::$color;//因为静态成员是属于类的,所以要使用类名调用静态成员 $f->Xianshi();
*/

抽象:

//抽象
//抽象类:关键字abstract
//特点:不能被实例化,只能被继承。
//目的:为了派生子类,控制子类
/*abstract class Dog
{
    public $name;
    function Jiao()
    {
        echo "旺旺";
    }
}
//$d = new Dog();//不能造出dog对象
class Jinmao extends Dog//金毛的类继承dog的类
{
    
}*/

接口:

//接口
//极度抽象的类
//接口里面不能包含成员变量,只能包含成员方法。
//成员方法没有函数体
//接口关键字:interface
//实现接口的类,必须实现接口里面的所有方法。

/*interface IUSB//接口名称一般是I(大写)开头
{
    function read();//读的方法
    function write();//写的方法
}

//鼠标的驱动类    
class Mouse implements IUSB
{
    function read()
    {
        echo "鼠标插入了";
    }
    function write()
    {
        echo "给鼠标一个指令";
    }
}

//键盘驱动类
class Jianpan implements IUSB
{
    function read()
    {
        echo "键盘输入了内容";
    }
    function write()
    {
        echo "给键盘一个指令";
    }
}

$m = new Mouse();
$m->read();

$j = new Jianpan();
$j->read();
原文地址:https://www.cnblogs.com/Strive-count/p/5998435.html