美文网首页我爱编程
近期面试的几个问题

近期面试的几个问题

作者: 草鞋弟 | 来源:发表于2018-04-08 21:04 被阅读0次

    1. 静态方法?静态属性?

    静态属性:

    • 静态属性是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
    • 访问修饰符为public 的静态属性可以在类的外面调用,访问修饰符为private,protected的静态属性;

    静态方法:
    静态方法用于专门操作静态属性,以便提高效率(当然普通方法也可以调用静态变量);

    在一些设计模式中会广泛应用到静态属性和静态方法,比如单例模式,工厂模式,观察者模式;

    单例模式:
    在程序运行过程中,要保证某个类始终只能有一个对象实例, 因为在程序运行中,我们需要一个对象就够了;

    • 三私一公

    2. 简单介绍一下继承?

    • 在面向对象编程中,存在三个特征(封装,继承,多态);
    • 继承可以有效的解决代码复用的问题;
    • 继承不能简单的理解成子类定义时,会把父类的属性声明,方法定义拷贝一份,而是建立了继承查找的的关系;
    • 如果在子类中需要访问其父类的方法(构造方法/成员方法 方法的访问修饰符是public/protected),可以使用父类::方法名(或者 parent::方法名 ) 来完成;
    • 如果子类(扩展类)中的方法和父类(基类)方法相同,我们称为方法重写, 关于方法的重写,我们会单独细致讲解;

    方法的重载

    • php 本身不能够实现方法的重载,是借用__call 魔术方法来实现方法的重载;

    属性的重载

    • 属性的重载指的是"动态"的创建对象属性,要注意的是动态创造的属性是public 属性的;

    方法的重写

    方法重写就是子类有一个方法,和父类(基类)的某个方法的名称、参数个数一样,那么我们就说子类的这个方法重写了父类的那个方法.

    属性的重写

    当一个子类的属性和父类的属性完全一样时,我们就叫子类的属性重写了父类的属性.

    final关键字

      1. 希望某个方法不能重写,则可以将该方法做出final方法, 即使用final关键字去修饰该方法即可.
      1. 希望某个类不能继承,则可以将该类做成final类, 即使用final关键字去修饰该类即可
    • 要注意:
      final 不能修饰成员属性;
      final 方法不能被重写,但是可以被继承使用;
      final 类不能被继承,但是可以实例化;

    3. 设计模式

    相关文章

      网友评论

        本文标题:近期面试的几个问题

        本文链接:https://www.haomeiwen.com/subject/phduhftx.html