继承
1.使用extends来实现继承。
2.为什么要使用继承?
继承让我们摆脱重复的代码,让我们的功能得以扩展。
class Car
{
public $wheel; //汽车轮子
public function run()
{
echo '能跑';
}
public function stop()
{
echo '能刹车';
}
}
class Truck extends Car
{
public $load; //载货量
}
在上面的代码中,car是父类(基类),truck是子类(派生类)
3.继承-构造方法
总结:(1)子类继承父类时,子类没有构造方法,实例化子类对象时,会执行父类的构造方法。子类如果有自己的构造方法,实例化子类对象时,只会自动执行子类自己的构造方法。
(2)实例化子类对象时,既要执行子类的构造方法,又要执行父类的构造方法如何实现?
在子类的构造方法中,使用 parent::__construct(); 主动调用父类的构造方法。
4.protected
protected:受保护的。
父类中被protected修饰的成员,只有在类内部以及继承类中使用,类外部不能使用。
多态——抽象类、覆盖
1.抽象方法的特点
(1)抽象方法没有方法体。
(2)抽象方法和类都要由abstract修饰。
2.抽象类有哪些特点
(1)有抽象方法的类必须是抽象类。
(2)抽象类不能实现化,没有自己的对象。
(3)抽象类都是父类,它下面有子类。
(4)子类继承抽象类后,必须实现父类所有的抽象方法。
3.继承抽象类时需要注意什么
子类继承抽象类后,必须实现父类所有的抽象方法。
4.重写(覆盖)父类的方法时,访问修饰符需要注意什么
子类重写父类的方法时,访问修饰符的权限应该符合
子类方法的访问权限 高于 父类方法的访问权限。