接口和异常

接口和异常


接口

接口是一种类型,更多体现的能力。

而接口的声明则和类的声明不同,创建一个类,使用public class xxx(){};而创建一个接口,则使用public interface xxx(){};

public interface Fly(){
	void fly();
}

接口的作用:接口的作用和父类的作用基本一致,子类必须重写接口中定义的方法。

public class Bird implements Fly{
	public void fly(){
		System.out.println("I can fly");
	}
}

接口的特征:
1.接口是用interface声明
2.接口只有抽象方法,故无方法体,当不写修饰符时,默认使用public abstract 修饰。【而在JDK1.8之后的版本,接口是支持static和default修饰的,这两种方法必须又方法体】
3.接口中的变量默认都是public static final(静态常量)修饰
4.接口不可被实例化
5.实现接口的类必须实现接口中所有的抽象方法,除非自己也是接口。
6.接口与接口之间只能extends(继承),不能使用implements(实现)
7.接口与接口之间可以使用多继承。
7.一个类可以同时实现多个接口,即类的多实现。
8.【jdk1.8】接口中的静态方法不可被继承,可以使用接口名.方法名调用。

接口与抽象类很相似,都需要子类去继承,但是他们是有区别的。

1.抽象类继承自Object类,接口不是。
2.抽线类有构造器,而接口没有。
3.抽象类中可以有普通变量和静态常量,而接口只能是静态常量。
4.抽象类中可以有普通方法,而接口中必须是抽象方法【JDK1.8之后可使用static和default修饰】
5.抽象类中可以有final方法,而接口中没有。
6.抽象类只能是单继承,多实现。而接口可以多继承其他接口,却不能实现其他接口,也不能继承其他类。


异常

程序在运行时,发生的错误。

常见的异常类型:

NullPointerException---------------------------空指针异常
ClassNotFoundException---------------------类找不到异常
ArithmeticException----------------------------数学运算异常
ArrayIndexOutOfBoundsException---------数组下标越界
ClassCastException----------------------------类型转换异常
NumberFormatException----------------------数字转换异常
SQLException------------------------------------操作数据库异常
IOException---------------------------------------输入输出流异常
FileNotFoundException------------------------文件找不到异常
InstantiationError---------------------------------实例化异常

如何捕获异常?

int[] i = new int[5];
try{
	i[5] = 0;
}catch(NullPointerException e){
	System.out.println("数组越位");
}catch(Exception e){
	System.out.println("程序异常");
}finally{
	System.out.println("程序结束");
}

使用try-catch语句可以捕获异常,使程序发生异常时,不会因为异常而中止程序的运行。
而第一个catch捕获到了空指针异常,则不会执行第二个catch,
而finally,无论程序是否异常,都会执行。
那么如何强制不运行finally呢?
可以在捕获执行语句中,添加System.exit(0);来中止程序运行。

如何声明一个异常?

可以使用关键字,throws来声明一个异常。

static void test(int a,int b) throws Exception{
	System.out.println(a/b);
}
try {
	test(3,0);
} catch (Exception e) {
	System.out.println("jvm不处理,自己处理。");
}

在test方法中声明一个异常,当执行test方法时,则需要捕获这个异常,交给jvm处理,jvm处理不了,就只能自己处理。

如果抛出一个异常?

使用throw抛出一个异常

void test(int i){
	try{
		if(i == 1){
			throw new Exception();
		}
	}catch(Exception e){
		Sysetem.out.println("程序异常");
	}
}

如上程序,当执行test方法时,传入i == 1时,则抛出一个异常,之后捕获。


overover,天冷jio冷~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值