1.什么是抽象类?
含有抽象方法的类就是抽象类,那么什么是抽象方法呢?
所谓的抽象方法是指只有方法声明,没有方法体的方法。
大家要分清楚什么是方法声明,什么是方法的定义。
2.学习抽象类的目的或者说抽象类的作用是什么?
抽象类的作用是提升程序的扩展能力,并且实现程序的异步开发。
3.抽象类的特性:
抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类
如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类
没有抽象构造方法,也没有抽象静态方法
抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用
4.final关键字
1.修饰类的时候,被修饰的类不可以被继承
2.修饰方法的时候,被修饰的方法不可以被重写
3.修饰变量的时候,变量的值不可被更改,final变量在定义的时候可以不初始化,那么就必须在构造函数中给其赋值。
5.什么是接口
接口可以理解为更纯的抽象类,接口中的方法全部都是抽象方法。
接口中所有的变量默认都是public static final类型,所有的方法默认都是抽象方法(public abstract)
java中不允许多继承,原因是如果不同的父类中有相同的方法定义,那么就会产生冲突。
接口允许多实现,因为接口中只有方法的声明,不会引起冲突,实现多个接口时,多个接口之间以逗号分隔。
接口可以继承接口。
6.异常
什么时异常?
在程序运行的时候,由于代码的不完善或者输入数据的不正确,难免会导致一些问题。
问题本身也属于一类事物,所以我们应该用类来描述这类事物。
Java中用于描述问题的类是Throwable。
Throwable有两个直接的子类Error,Exception
Error:用来描述比较严重的问题,一般都是系统问题。
Exception:用来描述不是太严重的问题,一般都需要程序员手动解决。
finally块中的代码是必须执行代码,除非程序提前退出,finally块中代码一般为释放资源的代码。
可以有多重catch块,多重catch块可以实现对不同异常进行不同的处理。
但是辈分越低的异常应该放在最前面,否则后面的catch块将不起作用。
throws关键用来声明方法可能抛出的异常。
对于一般的异常要么用try-catch块捕获,要么抛出去,抛给该程序的调用者。
throw用于抛出异常。
Exception异常又分为检查异常和未检查异常(即直接继承RuntimeException类的异常)
RuntimeException异常称为运行时异常,可以不用捕获也可以不用throws声明抛出,因为java本身就不希望用户处理运行时异常,运行时异常都是一些无法修补的异常,比如除数为零的时候。