静态抽象
静态
class Ren{ public $name; } //***普通成员属于对象的 //***静态成员属于类的 class FenBi{ public static $color; //静态成员变量(属于类) public $length; public static function test(){ //静态方法 echo "红色的粉笔"; //echo "长度为:{$this->length}" //静态的方法里面不可以包含普通成员,因为不同成员是属于对象的,当没有建立对象时,没有length成员变量,无法调用 } public function ceshi(){ echo "颜色为".FenBi::$color; //如果可以造出对象,就证明这个类存在,所以就可以调出静态成员 } } FenBi::$color = "红色"; //赋值 FenBi::$color; //取值 FenBi::test(); $f = new FenBi(); $f->ceshi();
什么时候会用静态?
1.如果这个类里面比较简单,有个成员方法要经常调用,做成静态会方便
2.如果想把A类里面的值传给B类
class A{ /*public function tanchu(){ echo "输出一个对象"; var_dump(new B("张三")); }*/ public function chuanzhi(){ B::$b = "张三"; //静态传值 } } class B{ public static $b; /*public $a; public function __construct($a){ $this->a = $a; }*/ //构造函数方法 } $a = new A(); $a->chuanzhi(); echo B::$b;
抽象
抽象类概念:更加抽象的一个类,无法直接实例化对象,主要作为父类存在。
抽象方法:抽象的一个方法,不能直接调用,用来在父类里面规定子类必须要实现什么样的方法或功能。
一个正常的类里面不能有抽象方法,如果有抽象方法那么必须是抽象类。
抽象关键字:abstract.
abstract class Ren{ public abstract function test(); //抽象方法在定义时不能加函数体 } class China extends Ren{ public function test(){ //对父类方法进行重写 echo "aa"; } } $r = new China();
接口:极度抽象的类
interface(面向对象)或API(网络数据接口80%)
关键字:interface.
//主要控制这个程序子类里面,必须要实现的功能 interface USB{ public function read(); public function write(); //极度抽象类里面只能有抽象方法,不能有普通方法和成员变量 } //接口的继承:implements class ShuBiao implements USB{ //相当于驱动 public function read(){ echo "鼠标插入了"; } public function write(){ echo "给鼠标供电"; } } $s = new ShuBiao(); $s->read();