PHP面向对象2
继承
父类(基类) 子类(派生类)
子类可以继承父类的一切
特点:单继承。 一个父类可以派生多个子类,一个子类只能有一个父类。
重写:子类对付类的方法进行重写(override)
重载:overload (PHP里面不存在,在强类型语言里面存在)
class Ren{
public $name;
public function say(){
echo "人在江湖飘<br>";
}
}
class China extends Ren{
public function say(){
parent::say();
echo "哪能不挨刀<br>";
}
}
class America extends Ren{
public function say(){
echo "一刀砍死你";
}
}
$c = new China();
$c->say();
$a = new America();
$a->say();
多态:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,所以该引用在调用
相应方法时表现出的不同形态成为多态。
运行多态(重写override)和编译多态(重载overload)
抽象类
抽象类
不能被实例化 只能作为父类使用
只要是包含抽象方法的类必须是抽象类
abstract class Ren{
public function say();
}
接口
第一层意思是面向对象。第二层意思是,API:网络上所提供的数据服务
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();
静态
普通成员:属于对象的
静态成员:属于类的
普通方法里面可以包含静态变量
静态方法里面不能包含普通成员
、class FenBi{
public $cd;
public static $ys; //静态成员变量
}
$f = new FenBi();
$f->cd;
echo FenBi::$ys = "黄色"; //调用静态成员