继承
概念:子类可以继承父类的一切
方法重写:在子类里面对父类的方法进行重写,实现自己独特的功能。
特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类。
override重写(子类对父类的重写)
//overload重载(函数的重载),编译多态
class Ren { public $name; function say() { echo $this->name."正在讲话!"; } } class China extends Ren//继承了所有的人的属性和方法。继承的关键字extends。继承以后China对象里面就包括Ren类里面的所有属性和方法。 { public $dizhi;//添加子类自己的属性 function say()//重写父类的方法say()。 { parent::say();//通过双冒号调用父类的方法 echo "中国人说话";//由于上一行引用了父类的方法,输出时会输出父类的say和子类的say,也就是会输出“正在讲话!中国人说话” } } class America extends Ren//继承了所有的人的属性和方法 {
function say() { echo "speak";//上面没有引用父类方法,输出时只输出子类的say,也就是输出“speak” } } //$c= new China; //var_dump($c); //$c->say();//子类名称->方法名就可以直接调用。
//$a = new America();
//$a->say();//输出“speak”
多态(运行多态)
概念:当父类引用指向子类实例,由于子类里面对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同状态。
条件:
1.必须发生在继承下
2.必须重写父类方法
3.父类引用调用该方法
如果一个方法需要一个父类参数,可以给一个子类对象。