解析 在 java 中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以
实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可
以使代码更可靠。
12.
1) class Person {
2} public void printValue(int i, int j) {/*…*/ }
3} public void printValue(int i){/*...*/ }
4} }
5) public class Teacher extends Person {
6} public void printValue() {/*...*/ }
7} public void printValue(int i) {/*...*/}
8} public static void main(String args[]){
9} Person t = new Teacher();
10} t.printValue(10);
11} }
12} }
Which method will the statement on line 10 call?
A. on line 2
B. on line 3
C. on line 6
D. on line 7
翻译:第十行的声明将调用哪些方法。
答案:D
解析 变量 t 是一个 Person 对象,但是它是用 Teacher 实例化的,这个问题涉及到 java 的编
译时多态和运行时多态的问题,就编译时多态来说,t 实际上是一个 Person 类,这涉及到
类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反
之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对 t
调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将
根据 t 实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用 t 实际指向的
Teacher 类的对应方法。在 java 中,可以用一个子类的实例实例化父类的一个变量,而变量
在编译时是一个父类实例,在运行时可能是一个子类实例。
13. Which are not Java primitive types?
A. short
B. Boolean
C. unit
D. float
翻译:下面哪些不是 java 的原始数据类型。
答案:B,C
解 析 Java 的 原 始 数 据 类 型 一 共 就 八 个 , 分 别 是 :
byte,short,int,long,boolean,char,float,double 。 注 意 这 些 是 大 小 写 敏 感 的 , 而 Boolean 是
booelan 的封装类(wrapper class)。
14. Use the operators "<<", ">>", which statements are true?