
code:
class A {
A() {}
}
class B extends A {
}
Which two statements are true? (Choose two)
A. Class B's constructor is public.
B. Class B's constructor has no arguments.
C. Class B's constructor includes a call to this().
D. Class B's constructor includes a call to super().
答案是:BD
Java
类中
(1)如果没有指定构造函数,编译时会自动创建一个默认的构造函数,如果指定,则不会自动创建默认构造函数
(2)如果在类的修饰前是public 则默认构造函数访问权限是 public ,如果
没有显示采用public修饰,则默认构造函数的访问权限是 friendly
(3)子类继承父类,子类的构造函数执行前总是会调用父类的构造函数,如果没有显示的调用父类的构造函数,则会调用父类默认的构造函数,如果父类无法产生默认构造函数,则编译器会报错。同样,如果父类的构造函数使用 private
修饰,则子类的构造函数由于无法访问到父类的默认构造函数,编译器报错