6.5 继承
Posted 尘不修仙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.5 继承相关的知识,希望对你有一定的参考价值。
类的继承
子(派生类)继承父(基类) 关键字 :extends
语法:class zi extends fu{}
访问权限三个修饰符
public: 公共的,可以在任何地方定义(就是 var 的作用)
protected: 受保护的,只能在当前类或者当前类的上下级有继承关系的类访问,别的类访问不了
private: 私有的,只能在其所在类访问,别的类访问不了
基本概念:
继承 :一个类从另一个类获得他的属性和方法,称为继承。
派生 :从一个已经有的类产生一个新的类,称为派生。
拓展 :在子类中再来定义自己的一些新的特有的属性和方法,没有扩展,也就没了继承的意义。
单继承:一个类只能继承一个上级的特性和信息。
parent代表父类
对比:self代表当前类(自己所在的当前类)
parent 通常用于子类中调用父类的成员,多数就是使用父级的静态类成员,因为parent代表的是类,并非对象
构造方法析构方法在继承中的表现:
子类中没有定义析构方法时,会自动调用父类的析构方法,如果子类定义了自己的析构方法,就不会调用父类的析构方法,如果想调用可以手动添加,perent::__destruct()。
最终类跟最终方法:
一个类或者一个方法,不想被别人当做父级拿来拓展或者方法不希望被下级覆盖,可以在类或者方法前面写关键字:final
例:最终类:final class 方法名{}; 最终方法:final function 方法名(){}
重写(override)
重写又叫覆盖,就是将从父类继承下来的属性或方法重新写成适合自己的,但是要覆盖的属性名、方法名、参数要一样。
设计模式:设计模式分为工厂模式和单例模式,是解决一些问题的常规做法,比较好的一种经验总结,面对不同的问题,可能会有不同的解决办法,此时可以称为不同的设计模式
抽象类和抽象方法 关键字 abstract
概念:在正常类或者方法前面加上关键字 abstract 就构成了抽象类或者抽象方法,抽象类不一定有抽象方法,但是有抽象方法一定是抽象类,
抽象方法:抽象方法只有定义,没有方法体,小括号里写参数,括号外一定有分号,并且没有大括号{}。
语法:abstract function a($x1, $y, $m);
以上是关于6.5 继承的主要内容,如果未能解决你的问题,请参考以下文章
django-rest-framework、多表模型继承、ModelSerializers 和嵌套序列化器