JAVA认证历年真题:SCJP认证套题解析(1)

来源:java认证发布时间:2012-11-12 13:05:53java认证视频


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

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答