时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。
9.作为程序入口的main()方法的返回类型是什么?
A.int
B.void
C.boolean
D.static
答案B
解析:
在java中,程序运行的入口就是main()方法,它必须是这样的形式:publicstaticvoidmain(Stringargs[])。但是严格来讲这个题目的答案还可以加上a和c,因为并没有限定是程序入口的main()方法,而main()方法是可以重载的。一般意义上的main()当然就是指我们刚开始所说的main()方法了。
10.int的取值范围是哪个?
A.-27--27-1
B.0--232-1
C.-215--215-1
D.-231--231-1
答案D
解析:
int型是32位的。参看第一题的论述。
二、多选题:
11.下面哪些不是java的基本数据类型。
A.short
B.Boolean
C.unit
D.float
答案B,C
解析:
Java的原始数据类型一共就八个,分别是:byte,short,int,long,boolean,char,float,double。注意这些是大小写敏感的,而Boolean是booelan的封装类(wrapperclass)。
12.下面关于继承的哪些叙述是正确的?
A.在java中只允许单一继承。
B.在java中一个类只能实现一个接口。
C.在java中一个类不能同时继承一个类和实现一个接口。
D.java的单一继承使代码更可靠。
答案A,D
解析:
在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。
13.下列哪些不是Java关键字?
A.TRUE
B.sizeof
C.const
D.super
E.void
答案A,B
解析:
A:不是,Java中有true,但是这也不是关键字而是字面量(literal)。
B:不是,Java中不需要这个操作符,所有的类型(原始类型)的大小都是固定的。
C、D、E都是,需要说明的是const是java中未被使用的关键字。
14.下列哪些代码段不会出现编译错误?
A.
inti=0;
if(i){
System.out.println(“Hi”);
}
B.
booleanb=true;
booleanb2=true;
if(b==b2){
System.out.println(“Sotrue”);
}
C.
inti=1;
intj=2;
if(i==1||j==2)
System.out.println(“OK”);
D.
inti=1;
intj=2;
if(i==1&;|j==2)
System.out.println(“OK”);
答案B,C
解析:选项A错,因为if语句后需要一个boolean类型的表达式。逻辑操作有^、&;、|和&;&;、||,但是“&;|”是非法的,所以选项D不正确。
15.下列哪两个选项体现了组合(”hasa”)关系?
A.publicinterfacePerson{}
publicclassEmployeeextendsPerson{}
B.publicinterfaceShape{}
publicinterfaceRectandleextendsShape{}
C.publicinterfaceColorable{}
publicclassShapeimplementsColorable{}
D.publicclassSpecies{}
publicclassAnimal{privateSpeciesspecies;}
E.interfaceComponent{}
classContainerimplementsComponent{
privateComponent[]children;
}
答案D,E
解析:在Java中代码重用有两种可能的方式,即组合(“hasa”关系)和继承(“isa”关系)。“hasa”关系是通过定义类的属性的方式实现的;而“isa”关系是通过类继承实现的。本例中选项A、B、C体现了“isa”关系;选项D、E体现了“hasa”关系。
16.