继承中的构造方法

来源:互联网 发布:犀牛5.0mac 编辑:程序博客网 时间:2024/06/08 05:16
  • 9.
    (单选题)下列代码编译和运行的结果是:()。
    view sourceprint?
    01class Person {
    02 String name = " ";
    03 
    04 public Person(String name) {
    05  this.name = name;
    06 }
    07}
    08 
    09class Employee extends Person {
    10 String empNO = "0000";
    11 
    12 public Employee(String empNO) {
    13  this.empNO = empNO;
    14 }
    15}
    16 
    17public class EmployeeTest {
    18 public static void main(String[] args) {
    19  Employee e = new Employee("1109");
    20  System.out.println(e.empNO);
    21 }
    22}
    •  A.输出:0000
    •  B.输出:1109
    •  C.代码public Employee(String empNO) {行,出现编译错误
    •  D.抛出运行时异常

    正确答案:C

    解析:本题考查继承中的构造方法。 子类的构造方法中必须通过super关键字调用父类的构造方法,这样可以妥善的初始化继承自父类的成员变量。如果子类的构造方法中没有调用父类的构造方法,Java编译器会自动的加入对父类无参构造方法的调用(如果该父类没有无参的构造方法,会有编译错误)。 本题中,父类Person没有提供无参数的构造方法,因此在代码public Employee(String empNO) {行,出现编译错误。