php面向对象基础(三)
1.静态*
普通成员:属于对象的
静态成员:属于类的
关键字:static
class FenBi
{
public $length=10;//粉笔长度,普通成员
public static $color="红";//粉笔颜色,静态成员
public static function test()
{
echo "静态成员方法".self::$color;//self 该类,用类名FenBi也可以实现
}
public function ceshi()
{
echo self::$color;
}
}
$f = new FenBi();
$f->length;//普通成员的调用方式
$f->ceshi();
FenBi::$color;//静态成员的调用方式
FenBi::test();//静态成员方法,不能调用普通成员
2.抽象
关键字:abstract
抽象类由于过于抽象,所以不能被实例化,作为父类存在
抽象方法里面不能包含函数体,其具体功能在子类里面通过重写实现
包含抽象方法的类一定是抽象类
abstract class DongWu
{
public $name;
abstract public function test();//由于过于抽象不能用函数体即不用加{}
}
class Dog extends DongWu
{
public function test()//重写
{
echo "重写";
}
}
$d=new Dog();
var_dump($d);
3.接口 极度抽象的类
接口里边没有成员变量
接口里面的所有成员函数全部为抽象的
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();