1. 静态方法?静态属性?
静态属性:
- 静态属性是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
- 访问修饰符为public 的静态属性可以在类的外面调用,访问修饰符为private,protected的静态属性;
静态方法:
静态方法用于专门操作静态属性,以便提高效率(当然普通方法也可以调用静态变量);
在一些设计模式中会广泛应用到静态属性和静态方法,比如单例模式,工厂模式,观察者模式;
单例模式:
在程序运行过程中,要保证某个类始终只能有一个对象实例, 因为在程序运行中,我们需要一个对象就够了;
- 三私一公
2. 简单介绍一下继承?
- 在面向对象编程中,存在三个特征(封装,继承,多态);
- 继承可以有效的解决代码复用的问题;
- 继承不能简单的理解成子类定义时,会把父类的属性声明,方法定义拷贝一份,而是建立了继承查找的的关系;
- 如果在子类中需要访问其父类的方法(构造方法/成员方法 方法的访问修饰符是public/protected),可以使用父类::方法名(或者 parent::方法名 ) 来完成;
- 如果子类(扩展类)中的方法和父类(基类)方法相同,我们称为方法重写, 关于方法的重写,我们会单独细致讲解;
方法的重载
- php 本身不能够实现方法的重载,是借用__call 魔术方法来实现方法的重载;
属性的重载
- 属性的重载指的是"动态"的创建对象属性,要注意的是动态创造的属性是public 属性的;
方法的重写
方法重写就是子类有一个方法,和父类(基类)的某个方法的名称、参数个数一样,那么我们就说子类的这个方法重写了父类的那个方法.
属性的重写
当一个子类的属性和父类的属性完全一样时,我们就叫子类的属性重写了父类的属性.
final关键字
- 希望某个方法不能重写,则可以将该方法做出final方法, 即使用final关键字去修饰该方法即可.
- 希望某个类不能继承,则可以将该类做成final类, 即使用final关键字去修饰该类即可
-
要注意:
final 不能修饰成员属性;
final 方法不能被重写,但是可以被继承使用;
final 类不能被继承,但是可以实例化;
网友评论