面向对象 面试题

面象对象的三大特征:

  • 继承:extends

   作用:代码复用、传递性。  

   子类继承父类的特征和行为。子类可以有父类的方法,属性(非private)。子类也可以对父类进行扩展,也可以重写父类的方法。缺点就是提高代码之间的耦合度。

   super关键字:通过super实现对父类成员的访问。用来引用当前对象的父类。通过super显示的调用父类的有参构造,无参构造可以隐式调用

   this:用来引用当前对象,指向自己

   final:可以修饰类,方法,属性;修饰的类不能继承,修饰的方法不能重写,修饰的属性不能修改。

  • 封装:隐藏内部实现,只暴露公共行为

    1.  类:封装的是对象的属性和行为

           2.  方法:封装一段特定的业务逻辑功能

   3. 访问控制修饰符:封装的是具体的访问权限

  • 多态:分为:

   1. 行为多态(所有抽象方法)体现在:

    重载:

      1) 发生在一个类中,方法名称相同,参数列表不同,方法体不同

      2)  遵循"编译期"绑定,看参数/引用的类型来绑定方法

    重写:

      1)  发生在父子类中,方法名称相同,参数列表相同,方法体不同
      2)  遵循"运行期"绑定,重写方法被调用时,看对象的类型
      3)  遵循"两同两小一大"原则:
         两同:
        -  方法名称相同
           参数列表相同
         两小:
        1.  派生类方法的返回值类型小于或等于超类方法的
            1)  void时,必须相等
            2)  基本类型时,必须相等
          3)  引用类型时,小于或等于
           2. 派生类方法抛出的异常小于或等于超类方法的-----异常之后
           一大:
            派生类方法的访问权限大于或等于超类方法的-

   2. 对象多态(所有对象)体现:

       向上造型:向上转型是自动的   Father  f  = new Children();不需要强转

       向下造型:向下转型需要强转   Children c = (Children)new Father()需要强转。让父类知道具体转成哪个子类   

原文地址:https://www.cnblogs.com/677-code/p/9451330.html