load() { /*do something*/ } }//要先继承后实现
C.public class Employee implements Info extends Data { public void Data.load() { /*d something */ } public void load() { /*do something */ } }
D.public class Employee extends Info implements Data { public void load() { /*do something */ } public void Info.load() { /*do something*/ } }
正确答案:A
先继承后实现,排除BC,D中Info.load()错误,静态方法才可以通过类名点方法
注意:接口中的load和Info中的load的签名完全一致,同时没有父子继承关系,所以load方法既不构成重载,也不构成重写。
28.(单选)类A,B的定义如下: class A {
private int a = 100;
2 A() { □
System.out.print(\ System.out.println(a); } } class B extends A { private int a = 200;
1 B() {□
3System.out.print(\□
System.out.println(a); } } 运行下面的代码: new B();
实例化B类对象,程序调用B类无参构造器,执行代码前先隐式调用父类无参构造
输出的结果是:()。 A.A() 100 B() 200 B.A() 200 B() 200 C.B() 200 A() 100 D.B() 200 A() 200 正确答案:A 29.
(单选)如下方法声明中,错误的是()。
A.public void say() { System.out.print(“Hi”); }
B.public void say() { System.out.print(“Hi”); return; } C.public int say() { System.out.print(“Hi”); return; }缺返回值 D.public int say() { System.out.print(“Hi”); return 0; } 正确答案:C 30.
(单选)下列代码编译和运行的结果是()。 public class A { public void start() {
System.out.println(\ public class B extends A {
public void start() {
System.out.println(\
public static void main(String[] args) { ((A) new B()).start(); } }
(父类)new 子类(),实例化B类对象然后被强转为父类类型,再调用start的方法,但是
当子类重写了父类的方法后,该重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的都是子类重写后的版本
A.输出:TestA B.输出:TestB C.输出:TestA TestB D.编译错误 正确答案:B 31.
(单选)下列代码的运行结果是:
public class GoTest {
public static void main(String[] args) { Sente a = new Sente(); a.go();
Goban b = new Goban(); b.go();调子类重写的版本 Stone c = new Stone();
c.go(); 继承父类的方法,没有重写,调父类中的go方法 } }
爷爷
class Sente implements Go { 实现了Go接口,重写了go方法 public void go() {
System.out.println(\ 父亲
class Goban extends Sente { public void go() {
System.out.println(\ 儿子
class Stone extends Goban implements Go { } interface Go { public void go(); } A.go in Goban go in Sente go in Sente B.go in Sente go in Sente go in Goban C.go in Sente go in Goban go in Goban D.go in Goban go in Goban go in Sente 正确答案:C
32.(单选)程序的执行结果是()。
public class Test { int x;
public static void main(String [] args){ Test t = new Test(); t.x=5; change(t);
System.out.println(t.x); }
public static void change(Test t){ t.x=3; } } A.5 B.3 C.0 D.4
正确答案:B x为成员变量,作用域为整个Test类
33.(单选)分析如下语句,说法错误的是()。
A.break可用于跳出循环,当多层嵌套时,只用于跳出一层循环