PHP 静态与抽象

静态:静态成员是属于类的。  

普通成员是属于对象的;

class Ren{
    public $name;//普通成员
}
class FenBi{
    public static $color; //静态成员
    public $length;
    public static function test(){   
        //echo "红色的粉笔";
        echo "长度为:{$this->length}";//静态的方法里面不可以包含普通成员
}
public function ceshi(){

echo "颜色为".FenBi::$color; } } //普通的方法里面可以包含静态成员

关键字:static


给类的静态成员赋值:
FenBi::$color ="红色";
FenBi::test(); //调用静态方法

静态的方法里面可以包含普通成员吗?不能。

调用类的静态方法:

$f = new FenBi();
$f->censhi();
class A{
    public function tanchu(){
        echo  "输出一个对象";
        var_dump(new B("张三"));  
}
       
}


class B{
     public $b;    
     public funtion __construct($b){   //构造函数
        $this->b = $b;

    }
}

抽象类:更加抽象的一个类,无法直接实例化对象,主要作为父类存在。不能被实例化。
抽象方法:抽象的一个方法,不能直接调用。

关键字:abstract

abstract class Ren{
    public abstract function test();//不能加花括号,不包含函数体
    }

class China extends Ren {
    public function test(){  //子类实现抽象类的抽象方法
        echo "aa";
        }
    }
$c = new China();

接口:极度抽象的类,只能包含抽象方法。控制子类必须要实现的功能。

关键字:interface

interface USB{
    public function read();
    public function write();
    }

实现接口的类,关键字为implements

interface USB{
    public function read();
    public function write();
    }
    
class ShuBiao implements USB{
    public function read(){
        echo "鼠标插入";
        }
    public function write(){
        echo "给鼠标供电了";
        }
    }
$s = new ShuBiao();
$s->read();

输出:

原文地址:https://www.cnblogs.com/niushuangmeng/p/8259265.html