静态和抽象和接口
类里面的分为普通成员和静态成员
静态成员赋值取值
<body> <?php class FenBi{ public static $color; //静态成员 关键字:static public $length;//普通成员变量属于对象 } Fenbi::$color="红色";//给静态成员赋值 Fenbi::test();//静态成员取值 ?> </body>
普通成员赋值取值
<?php class FenBi{ public $lenth;//普通成员变量属于对象 public static $color;//静态成员关键字static属于类 } FenBi::$color = "红色";//给静态成员赋值 FenBi::$color;//静态成员取值 $f = new FenBi();//实例化 $f->lenth = "15CM"; ?>
静态方式
<body> <?php class FenBi{ public static function test(){//静态方法关键字 echo"这是静态方法"; } } FenBi::test(); ?> </body>
显示:
静态方法里不能有普通成员(普通成员调用需要实例化,静态方法不需要实例化)
普通方法里可以有静态成员
<?php class FenBi{ public $lenth; public static $color; public function test(){ echo "颜色为".FenBi::$color; } } FenBi::$color = "红色"; FenBi::$color; $f = new FenBi(); $f->test(); ?>
静态方法实例
<?php class A{ public function chuanzhi(){ B::$b = "张三"; } } class B{ public static $b; } $a = new A(); $a->chuanzhi(); echo B::$b ?>
构造函数方法
<?php class A{ public function chuanzhi(){ var_dump(new B("张三")); } } class B{ public $b; public function __construct($b){ $this->b = $b; } } $a = new A(); $a->chuanzhi(); ?>
抽象
抽象类:类本身就是抽象的,抽象类就是更加抽象的类,无法直接实例化对象,主要作为父类存在可以派生子类。
抽象方法:抽象的一个方法,不能直接调用主要用来让子类事项
子类继承父类的抽象方法,不过子类不重写,那么子类必须为抽象类。
<?php abstract class Ren{ public abstract function test();//抽象方法不需要加{} } class china extends Ren{ public function test(){ echo "方法重写"; }//重写抽象类方法 } $a = new China(); $a->test(); ?>
抽象类里可以有抽象方法和普通方法
接口
里面只能有抽象方法,不能有别的
接口是极度抽象的类
接口有面向对象的接口和API:网络数据接口。
<?php interface USB{ public function read(); public function write(); }//面向对象的接口关键字interface class ShuBiao implements USB{//关键字不再是extends 关键字是implements function read(){ echo"鼠标插入<br>"; } function write(){ echo"正常使用"; } } $a = new ShuBiao(); $a->read(); $a->write(); ?>