Java是通过关键字abstract来实现抽象类的:
Modifies abstract class ClassName {…}
如果是实现一种方法,其具体内容由子类决定,就是抽象方法了。抽象方法只有声明,没有具体的实现:
abstract void method();
- 如果一个类包含抽象方法,那么该类必须是抽象类。
- 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
接口的继承关键字是 implements
接口中的所有属性默认为:public static final
接口中的所有方法默认为:public abstract
异常的类型有以下三种:
- 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
- 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
- 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
异常处理的根接口是Throwable,有两个子接口,分别是Error和Exception。
Error:用来指示运行时环境发生的错误,这是系统错误类,一般开发人员无法处理,只能关闭程序。
Exception:指的是程序运行中产生的异常。
Exception下的异常分为两大类,分别是Runtime异常和非Runtime异常
Runtime异常:程序运行时产生的异常,jvm会自动处理。典型的运行时异常有:数组下标越界异常(IndexOutOfBoundsException)、空指针异常(NullPointerException)、对象类型强制转换异常(ClassCastException)以及数组存储异常(ArrayStoreException,即数组存储类型不一致)等。
非Runtime异常:也叫检查异常,即编译器要求必须进行处理的异常,例如IOException、SqlException。
Java异常机制用到的几个关键字:try、catch、finally、throw、throws。