一、静态
普通成员:属于对象
静态成员:属于类的
关键字:static
class fenbi
{
public $length;
public static $color="红";
public static function test()
{
echo "静态成员方法".self::$color;//静态方法不能调用普通成员,self::调用静态成员或直接用类名调用
}
public function ceshi()
{
echo self::$color;//普通成员方法可以调用静态成员
}
}
$f=new fenbi();
$f->length;//普通成员调用方式
fenbi::$color;//双冒号调用静态成员
fenbi::test();//静态方法不需要造对象,可以直接调用
二、抽象
关键字:abstract
抽象类由于过于抽象,所以不能被实例化,作为父类存在
抽象方法里面不能包含函数体,其具体功能在子类里面重写实现
包含抽象方法的类一定是抽象类
abstract class dongwu
{
public $name;
public abstract function test();//抽象方法不能包含函数体
}
class dog extends dongwu//子类要么继承父类的抽象方法,要么子类也变成抽象类
{
public function test()
{
echo "重写了" ;
}
}
var_dump($d);
三、接口 极度抽象的类
接口里面没有成员变量
接口里面所有成员函数全部为抽象的
interface IUSB
{
public function read();
public function write();
}
class shubiao implements IUSB
{
public function read()
{
echo "鼠标插入了";
}
public function write()
{
echo "往鼠标写内容";
}
}
$s=new shubiao();
$s->read();
接口如果不是指面向对象里的接口就是指网络服务的接口。