关键词:abstract
抽象方法只有方法名(规范),没有方法实现。
抽象类中可以有普通方法及其实现,抽象方法必须在抽象类中。
抽象父类的子类都要实现它的抽象方法。
抽象类不能New实例,只能靠继承了它的子类去New实例,但抽象父类有构造器,因为子类在New实例时,会先调用父类的构造方法,然后再是自己的构造方法。
关键字:interface
只有方法声明(规范), 没有方法实现。
接口的本质是契约,制定好后,是我们大家都遵循的东西。
接口中声明的方法默认为public abstract修饰。
接口都需要有实现类(xxxImpl),实现类必须重写接口中声明的方法。
接口不能被实例化(无构造方法)。
Java将异常当对象处理,所有的异常都继承了Java.lang.Throwable超类,Java API中已定义了许多异常类,可分为两类:错误Error和异常Exception。即最底层的是Throwable类,然后是Error、Exception继承了Throwable类,可以根据不同报红提示选择catch中的捕获类型。
异常处理:抛出异常、捕获异常
关键字:try catch finally throw throws
try{ 可能出现异常的代码 }
catch(要捕获的异常类型 e){ 异常出现后执行的代码 }
finally{ 无论出不出现异常都要执行的代码(如释放资源) }
方法体中通过throw抛出异常,可以直接在方法体中用try-catch捕获并处理。
方法声明处通过throws抛出异常,谁调用谁处理,调用时可以用try-catch来捕获并处理。
自定义异常类必须继承Exception类。
public class MyException extends Exception {
//自定义数子大于10异常
private int detail;//接受参数
public MyException(int a) {
this.detail = a;
}
//打印异常信息
@Override
public String toString() {
return "MyException{" +
"detail=" + detail +
‘}‘;
}
}
public class Exceptiontest {
static void test(int a) throws MyException {
System.out.println("参数为:"+a);
if(a>10){
throw new MyException(a);//抛出
}
else {
System.out.println("未出现异常");
}
}
public static void main(String[] args) {
try {
test(8);
} catch (MyException e) {
System.out.println(e);
}
}
}
IDEA快捷操作:ctrl+Alt+T (选择代码快后,可快速生产try,if等将其包裹起来 )
原文:https://www.cnblogs.com/shanqiu24/p/14924991.html