面向对象继承以及常见特性
继承特性:
- 继承的格式:
- class 类名 extends 父类名{
…….代码….
} - 概念:
- 父类:被其他类继承的就是父类,也叫做基类
- 子类:继承其他类的类就是子类,也叫做派生类
- 特点:
- 子类继承父类既具备父类中所有的成员属性和方法(私有的除外)
- 子类继承父类之后可以具有子类独有的属性和方法
- 在继承时,子类中允许出现和父类同名的方法,这种情况不会冲突,而是子类的方法会覆盖父类的方法,这种方式叫做重载
- 魔术方法也可以被子类继承
- 如果父类具有构造方法,子类也需要高作方法进行构造成员属性,此时需要子类中重载父类的构造方法,并且在构造方法中使用parent::__construct();进行调用父类构造方法,构造继承而来到父类的成员属性
- 继承要有逻辑关系,尽量做到不乱继承
- php是单继承语言,其他语言多为多继承
访问类型控制
- private:除了类本身内部可以访问,其他地方都不能访问
- protected:类本身内部以及继承的子类可以访问,其他地方不能访问
- public:任何地方都可以访问
封装等级:
子类同名的方法封装等级必须大于或者等于父类的封装等级
var 是封装关键字,但是它不是一个标准的封装关键字,一般用于测试和学习 只能修饰成员属性 不能修饰成员方法
常见的关键字
- final
- 用于修饰成员方法
- 用于修饰类
- 禁止在子类中重载父类的方法
- 被修饰的类无法被继承
- const
- 作用:用于在类中声明常量,这种常量是类中的常量(类中的常量不归对象所有,而是归类所有)
- 在类中声明常量使用const关键字
- 声明常量时需要给常量赋值
- 声明常量归类所有而不是归任何对象所有
- 类中常量的访问方式
- 类的外部
- 类名::常量名
- 类的内部
- 类名::常量名
- self::常量名
- self表示当前类
- $this表示当前对象
- static
- 在类中使用static声明的成员都是静态成员
- 静态成员的特征是:不归对象所有,而是归类所有
- static关键字,既可以修饰成员属性,也可以修饰成员方法
- static声明的成员都是归类所有,而不是归对象所有,在没有对象的情况下,可以通过类来访问
- 能声明静态的成员就是需要声明静态等成员,效率高
- 具有动态成员的方法不可以声明为静态成员方法
- 如果方法中没有$this存在,那么这个方法实际上已经是一个静态方法(php版本>5.3以后要求写上static关键字)
静态成员访问
- 类内部:
- 类名::$静态成员属性名
- self::$静态成员属性名
- 类名::静态成员方法名();
- self::静态成员方法名();
- 类外部
- 类名::$静态成员属性名
- 类名::静态成员方法名()
- 对象->静态成员方法名();(一般不用)
posted on 2018-07-26 17:15 nothingMan 阅读(115) 评论(0) 收藏 举报
浙公网安备 33010602011771号