面试题精选

面试题

面试题精选:

1.方法重写与重载的区别

重载:
  java中允许同一个类文件中出现多个方法名相同,但是参数列表不同的同名方法,这种现象称为重载

  要求两个方法名称必须相同,但是参数列表不能相同(个数不同,参数类型不同,参数类型出现顺序)

  目的,让方法在接收不同参数实现实现不同功能

重写:

  发生在继承过程中,子类对父类方法实现细节进行重新定义

    1.重写方法时,子类不能降低方法的访问权限,可以扩大访问权限

    2.由private或者final修饰的方法都不能被重写

    3.重写方法时,抛出异常可以是父类方法抛出异常的全集、子集、空集

    4.重写的方法返回值,可以缩小返回值的范围,但是不能增加返回类型范围

2.throw 和 throws的区别

throws:

  1.声明位置:方法名之后

  public void test() throws NullPointerException{

  }

  2.作用:是处理异常的一种机制,通知开发人员当前方法运行时,【有可能】抛出的异常

  3.携带数据:throws后面携带【异常类型】,一个throws后面可以携带多个异常类型

  4.调用:当一个方法被throws修饰时,调用方法时必须考虑异常捕捉问题

throw:

  1.声明位置:方法执行体

  public void test(){
  throw new RuntimeException();
  }
  2.作用:throw是一个命令,执行时抛出一个指定异常对象

  3.携带数据:throw后面携带【异常对象】,一个throw一次只能携带一个异常对象

  4.调用:当一个方法内部在throw命令时,在调用时可以不考虑异常捕捉问题

3.接口与抽象类的区别

接口:

  1.是一种特殊文件,不可以有方法体,且接口的实现类必须重写接口中声明的方法

  2.作用:

    指定规则

    降低耦合度

  3.使用规则:

    接口中属性,默认都是静态常量属性

    接口中方法都是抽象,如果需要定义具体方法实现,此时方法需要使用default修饰

    接口中方法访问权限不能是private

    接口与接口之间可以实现多继承,但是接口之间不能互相实现

    接口中不能存在构造方法

抽象类:

  抽象类在实现接口时,可以不对接口中的方法进行重写,抽象类没有重写的方法,必须由抽象类的子类负责实现

  1.抽象类由abstract修饰

  2.抽象类的作用:降低接口实现类与接口之间实现难度

  3.使用规则:

    抽象类可以声明抽象方法,也可以生成具体方法

    抽象类声明抽象方法必须由子类进行重写

    抽象类实现接口时,不需要对接口方法进行重写

    抽象类有构造方法,但是不能使用

 

posted @ 2020-07-20 22:59  赖正华  阅读(94)  评论(0编辑  收藏  举报