/*
5. 下列代码输出结果为()
A. 动物可以移动
狗可以跑和走
狗可以吠叫
B. 动物可以移动
动物可以移动
狗可以吠叫
C. 运行错误
D. 编译错误
答案选D: 父类型引用指向子类型对象,无法调用只在子类型里定义的方法
*/publicclassTest{publicstaticvoidmain(String[] args){
Animal a =newAnimal();
Animal b =newDog();
a.move();
b.move();
b.bark();}}classAnimal{publicvoidmove(){
System.out.println("动物可以移动");}}classDogextendsAnimal{publicvoidmove(){
System.out.println("狗可以跑和走");}publicvoidbark(){
System.out.println("狗可以吠叫");}}
6. 下面字段声明中哪一个在interface主题内是合法的?
A. private final static int answer = 42;
B. public static int answer = 42;
C. final static answer = 42;
D. int answer;
答案选B: 在接口中,属性都是默认public static final修饰的,
A错误,不能用private修饰,
B正确,属性默认public static final,这三个关键字可以省略,
C错误,没写属性的类型,
D错误,final修饰的属性必须赋值。
7. 如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是()
A. void use(){...}
B. protected void use(){...}
C. public void use(){...}
D. 以上语句都可以用在类SmallCup中
答案选C: 实现接口要实现接口的所有方法,相当于重写方法,方法的重写需要满足:
两同一大一小(方法名、参数列表相同,返回类型、抛出异常 <= 重写前返回类型、抛出异常,访问权限 >= 重写前访问权限)
8. 有一个源代码,只包含 import java.util.*,对于这个import语句下面叙述正确的是()
A. 只能写在源代码的第一句
B. 可以访问java/util目录下及其子目录下的所有类
C. 能访问java/util目录下的所有类,不能访问java/util子目录下的所有类
D. 编译错误
答案选C: 因为如果根目录和子目录下可能有同名类,若都能读取,则会混淆
9. 关于异常的编程,以下描述错误的是:()
A. 在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常
B. int i = Integer.parseInt("123a") 会产生 NumberFormatException
C. int a[]= null; a[0]= 1; 将产生NullPointerException
D. 输入输出流编程中,读和写时都要抛出IOException
答案选A: Java 的异常分为两种,一种是运行时异常(RuntimeException),一种是非运行异常也叫检查式异常(CheckedException)。
运行时异常不需要程序员去处理,当异常出现时,JVM 会帮助处理,常见的运行时异常有:
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界异常)
NullPointerException(空指针异常)
ArrayStoreException(数组存储异常,即数组存储类型不一致)
非运行异常需要程序员手动去捕获或者抛出异常进行显示的处理,因为 Java 认为 Checked 异常都是可以被修复的异常,常见的有:
IOException
SqlException