关于接口和异常的总结
接口
为什么要使用接口?
Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类。但是在实际应用中,又经常使用多继承来解决问题。为了解决该问题,Java语言提供了接口来实现类的多重继承功能。
定义:
//接口的声明。修饰符写不写都为public。接口名逗号隔开
[修饰符] interface接口名[extends 父接口名列表]{
//接口体
[public] [static] [final] 变量;
//三个修饰符均可省略
[public][abstract] 方法;
//所有方法只有定义,没有实现(抽象方法)。默认public权限
}
接口的实现:
//可选值为public, abstract, final。接口名逗号隔开
[修饰符] class <类名> [extends 父类名] [implements 接口列表] {
}
注:在类中实现接口时,方法名、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。
接口继承接口:
//注意使用extends
Interface3 extends Interface0, Interface1, interface……
接口继承与类继承对比:
Java类的继承是单一继承,Java接口的继承是多重继承。
接口与继承对比:
1.抽象类没有属性限制,接口只能有静态常量。
2.抽象类单一继承,接口可以多重继承。
3.抽象类中可以有非抽象方法。接口中则不能有实现方法。
4.抽象类可以有具体方法,接口没有。
5.抽象类可以有构造方法,接口没有。
异常
异常与错误的比较:
Error和Exception都是Throwable类的子类。
Error及其子类,用于指示合理的应用程序不应该试图捕获的严重问题。
Exception及其子类,给出了合理的应用程序需要捕获的异常。
分类:
运行期异常和编译器异常
基本语法:
//检测不安全的代码块
try{
可能会发生异常的代码
//把抓到的类型匹配的异常捕获,保证程序能继续运行下去
}catch(异常类型 引用名){
异常处理代码
//只能有一个finally语句,总会执行
}finally{
必须执行代码
}
异常处理顺序:
在try中没有异常的情况下,try、catch、finally的执行顺序:
try --- finally
如果try中有异常,执行顺序:
try --- catch --- finally
如果try中没有异常并且try中有return: //return总是最后执行
try ---- finally --- return
如果try中有异常并且try中有return:
try----catch---finally--- return
如果try有异常,相应catch中有return:
try---catch---finally---return