当前位置:

JAVA认证历年真题:SCJP认证试题解析4

发表时间:2014/4/21 10:15:39 来源:互联网 点击关注微信:关注中大网校微信
关注公众号

11. Which statements about inheritance are true?

A. In Java programming language only allows single inheritance.

B. In Java programming language allows a class to implement only one

interface.

C. In Java programming language a class cannot extend a class and implement

a interface together.

D. In Java programming language single inheritance makes code more

reliable.

翻译

下面关于继承的哪些叙述是正确的。

A. 在java中只允许单一继承。

B. 在java中一个类只能实现一个接口。

C. 在java中一个类不能同时继承一个类和实现一个接口。

D. java的单一继承使代码更可靠。

答案A,D 解析

在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中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。

相关链接JAVA认证考试报考指南  考试论坛 考试知道   考试动态

(责任编辑:fky)

2页,当前第1页  第一页  前一页  下一页

考试科目