阅读Test.java代码,运行结果为?
class Person {
String name = "No name";
public Person(String nm) {
name = nm;
}
}
class Employee extends Person {
String empID = "0000";
public Employee(Srting id) {
empID = id;
}
}
public class Test {
public static void main(String arg[]) {
Employee e = new Employee(123);
System.out.println(e.empID);
}
}
what is the result?
A、Not equal
B、Equal
C、程序报错
D、没有输出
正确答案:C
解析:子类的构造方法**总是先调用父类的构造方法,**如果子类的构造方法没有明显的指明使用父类的哪个构造方法,子类就调用父类不带参数的构造方法。
而父类没有无参的构造方法,所以子类需要在自己的构造函数中显示的调用父类的构造函数。
纠正方法1:
纠正方法2: