引用的一道JAVA题目

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 修饰,则子类的构造函数由于无法访问到父类的默认构造函数,编译器报错

原文地址:https://www.cnblogs.com/chenyu123/p/4303644.html