第三次测试
抽象类和接口、异常
1. 接口中所有数据域的完整修饰词都是___public static final_____;
而所有方法的完整修饰词都是____public abstract_____。
2. 抽象类能否用作数据类型?如果能,请给出演示示例。
能,如创建一个抽象类型的数组。或者声明一个抽象类类型的引用变量。
3. 为什么要使用抽象方法?
简单的说,就是为了实现多态。
4. 语言中,下列哪一子句是异常处理的出口 (C)
A try{?}子句B、catch{?}子句C、finally{?}子句D、以上说法都对
5. 对程序语言而言,一般有编译错误和__运行__错误两类。
6. 下面说法为真还是为假?
a. 除了不能使用new操作符外,一个抽象类可以像非抽象类一样使用。(√)
b. 抽象类可以被继承。 (√)
c. 非抽象的父类的子类不能是抽象的。 (×)
d. 子类不能将父类中的具体方法重写,并定义为抽象的。 (×)
e. 抽象方法必须是非静态的。 (√)
因为静态方法不参与多态。
7. 请定义一个名为Test的接口。然后定义一个Test2类继承Test接口。
public interface Test{}
public class Test2 implements Test{}
8. 接口可以用哪些修饰符修饰?
一种是缺省的,即默认为包私有的,只能在同一包中使用;另外还有public,protected,private。
以及static,abstract.
9. 为什么要使用接口?
接口是一种规范、标准,目的指明相关或者不想关的类的多个对象的共同行为。同时也正在一定程度上实现了多态性。
10. 请写出异常处理的三种操作: 声明异常 、 抛出异常 、 捕获异常 。
11. 异常有哪两种? 免检异常 必检异常 (或者运行时异常与非运行时异常)
12. 如果父类的catch块出现在子类的catch块之前,会导致什么错误?为什么?
会出现编译错误,因为如果先捕获了父类异常,则再捕获子类的异常是没有意义的。
13. 请写出下面源码的输出结果
public class TestIOE {
public static void main(String[] args) {
int []a = new int[5];
try {
System.out.println(1/0);
a[5]=0;
int i=(int) 1.5;
} catch (ArithmeticException e) {
System.out.println("除数不能为0");
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界");
}catch (Exception e) {
System.out.println("其他异常");
}
finally{
System.out.println("程序正常结束");
}
}
}
输出结果:
除数不能为0
程序正常结束
再转载两篇其他大牛写的文章。、
大牛们都已经理解的比较透彻了,作为一个小白,能够自己总结当然是最好不过,但是时间的积累代码的熟练远远不够,
还是吸收一些前人的劳动成果,也是不错的。先看别人的理解,等自己写多了自然会有了自己的体会。