php final关键字及类方法重写
2018-12-21 本文已影响0人
枫叶鱼水
final---用于类、方法前。
final类---不可被继承。
final方法---不可被覆盖(重写)。
如果我们不希望一个类被继承,我们使用final来修饰这个类。这个类将无法被继承。
如果不希望类中的某个方法被子类重写,我们可以设置这个方法为final方法,只需要在这个方法前加上final修饰符。
php类方法被重写时,(必须与父类的方法名相同,并且参数个数也要一致),重写时访问级别只可以等于或者宽松于父类 不可提升访问级别,父类的public方法不能被子类重写为protected或者private,protected方法不能被重写为private,可以宽松er,不可以严格er
子类实现父类的抽象方法或某类实现接口的方法时其实仍属于继承关系,仍追寻访问等级只能降低不可提升的规则
而且
只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类。
抽象方法不可被声明为private,abstract修饰的方法肯定是用于继承实现的,所以只能是public或者protected 接口的方法声明必须为public,
如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是public权限的,那么这种特殊的抽象类就叫接口
接口使用interface关键字定义,并使用implements来实现接口的方法,且必须完全实现
interface里声明的方法也肯定是被继承实现的,且只能是public(如果不是public则不能称之为interface), implements 此接口的类也指定重写成public类型的方法