• 抽象类和接口(面试题总结)


    1、多态是什么,多态的前提条件是什么?
        多态:同一个对象(事物),在不同的时刻体现出来不同的状态。 
          举例: 
           猫是猫,猫是动物。 
          水(液体,固体,气态) 
         
        多态的前提: 
           A:要有继承关系 
           B:要有方法重写 
           C:要有父类引用指向子类的对象。 
                父 f = new 子(); 
    
    2、多态中成员访问的特点分别是什么?
        成员变量
          编译看左边(父类),运行看左边(父类)
          成员方法
          编译看左边(父类),运行看右边(子类)。
    
        静态方法
          编译看左边(父类),运行看左边(父类)。
          (静态和类相关,算不上重写,所以,访问还是左边的)
          只有非静态的成员方法,编译看左边,运行看右边
    
    
    3、什么是接口,它的特点是什么?
        interface 关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。 interface 的特性整理如下:
    
        1.接口中的方法可以有参数列表和返回类型,但不能有任何方法体。
    
        2.接口中可以包含字段,但是会被隐式的声明为 static 和 final 。
    
        3.接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。
    
        4.接口中的方法可以被声明为 public 或不声明,但结果都会按照 public 类型处理。
    
        5.当实现一个接口时,需要将被定义的方法声明为 public 类型的,否则为默认访问类型, Java 编译器不允许这种情况。
    
        6.如果没有实现接口中所有方法,那么创建的仍然是一个接口。
    
        7.扩展一个接口来生成新的接口应使用关键字 extends ,实现一个接口使用 implements 。
    
        8.接口中的方法是抽象方法(abstract),不能是静态方法(static).接口的所有方法都是抽象的,而抽象方法是没有static,有static的方法是不能override的,所以这样定义接口才有意义。
    
    
    4、抽象类和接口的区别是什么?
         第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
             第二点. 接口可以多继承,抽象类不行
             第三点. 接口定义方法,不能实现,而抽象类可以实现部分方法。
             第四点. 接口中基本数据类型为static 而抽类象不是的。
             第五点.   接口中不能含有静态代码块以及静态方法,而抽象类可以含有静态方法和静态代码块。
         设计层面的讨论
    
        模板式设计:就高级语言来说,每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的所有共性。抽象类的功能要远超过接口,但是,定义抽象类的代价高。
    
        辐射式设计:对行为的一种规范。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。
  • 相关阅读:
    js面向对象设计之function类
    js 面向对象设计之 Function 普通类
    JS 面试题 实践一
    es6面试问题——Promise
    我给出的一份前端面试题
    如何面试前端工程师?
    前端面试中的自我介绍
    第四章 --- 关于Javascript 设计模式 之 迭代器模式
    第三章 --- 关于Javascript 设计模式 之 代理模式
    第二章 --- 关于Javascript 设计模式 之 策略模式
  • 原文地址:https://www.cnblogs.com/xujingyang/p/6440898.html
Copyright © 2020-2023  润新知