Java 抽象类,接口,异常处理

38 阅读3分钟

抽象类

1. 不能实例化

2. 定义标准,可以有抽象方法,强制子类按抽象类的抽象方法的标准去重写

3. 父类指向子类对象,实现多态

4. 其他和普通类一样

接口

1.接口可以理解为一个特殊的抽象类,但是可以有类多实现接口和接口之间多继承

2.interface 接口,不是类,所以没有继承自Object,所有类都默认继承Object

3.接口不是类,所以没有构造器

4.接口中不能有普通属性

5.接口中不能有普通方法,JDK1.8后有默认方法。

6.接口的静态常量和抽象方法都是public的,且不允许修改

7.实现接口使用 implements 关键字

两者的区别

  1. 抽象类单继承,接口多实现,多继承。
  2. 抽象类可以有属性和常量,接口只能有常量。
  3. 抽象类有构造器,接口没有构造器

什么时候使用抽象类,什么时候使用接口

角度1:如果要实现多个扩展功能我们考虑使用接口,因为可以多实现。如果只是复用属性和方法, 角度2:现在更多的推荐是面向接口编程,所以,一般没有什么特殊场景,我都会使用接口,因为增强了 程序的扩展性和可维护性。继承一般是要满足is a的关系。 但是实现接口不需要,一般符合like a即可。 所以开发中更多是会采用继承加实现的方式。继承一般使用一个顶级的父类,复用子类的共同属性和行 为。功能性的一般都使用接口来实现。

异常

  1. 讲讲你开发过程中,碰到的常见异常?

NullPointException 空指针

IndexOutOfBoundsException 数组越界

ArithmeticException 算数异常

NumberFormatException 数值格式化异常,把不能转成数字的数据去转成数字

ClassCaseException 类型转换异常

SQLException SQL语法错了,数据库驱动,数据库密码。。

IOException 输入输出流,读写文件的时候,参数不对

  1. 谈谈你对Java中异常的理解

Java中的异常是 Exception 类,它继承自 Throwable 这个基类,同时该基类还有一个 Error 错误子类 Exception 是异常,它又分为检查性异常和运行时异常

检查性异常必须在 编译期间 要求程序去处理,处理的方式可以是 throws 声明抛出,或者使用try-catch 捕获处理.

运行时异常不强制程序在编译器处理,可自行选择是否处理,处理方式和上述一样。

Error 是错误,它代表程序在执行的时候遇见一些不可控的非常规的问题,一般程序本身无法解决。比如: 内存溢出 , 网络问题

throw 真正报一个异常

throws 是声明异常,告诉调用方,我可能会报这个异常。 如果声明的是一个检查性异常用方必须处理;如果是运行时异常,调用方可自行选择是否处理。

catch要类型匹配或父类异常才能捕获对应的异常