关于构造函数描述正确的是?
A: 以下代码,创建B对象的时候,A的构造函数不会被调用,因为没调用super();class A{ A() { System.out.println("A"); } } class B extends A{ B() { System.out.println("B"); }
B: super必须放在构造函数的第一行!
C: 如果没显示调用基类构造函数,也会被隐式调用,并且先于它自己的构造函数。
D: 构造函数可以定义多个,并可通过this(参数)的方式调用另外一个构函数。
A: 以下代码,创建B对象的时候,A的构造函数不会被调用,因为没调用super();class A{ A() { System.out.println("A"); } } class B extends A{ B() { System.out.println("B"); }
B: super必须放在构造函数的第一行!
C: 如果没显示调用基类构造函数,也会被隐式调用,并且先于它自己的构造函数。
D: 构造函数可以定义多个,并可通过this(参数)的方式调用另外一个构函数。
举一反三
- 【单选题】下面是有关子类调用父类构造函数的描述正确的是? A. 子类定义了自己的构造函数,就不会调用父类的构造函数 。 B. 如果子类的构造没有通过 super 调用父类构造函数, 那么子类会先调用子类自己的构造函数,再调用父类不含参数的构造函数。 C. 创建子类的对象时,子类构造方法总是先调用父类的构造函数 。
- 通过()引用,派生类构造函数可以调用基类构造函数。 A: object B: Class C: Base D: system
- 当定义派生类对象时,调用构造函数的正确顺序是( ) A: 先调用基类的构造函数,再调用派生类的构造函数 B: 先调用派生类的构造函数,再调用基类的构造函数 C: 调用基类的构造函数和派生类的构造函数的顺序无法确定 D: 调用基类的构造函数和派生类的构造函数是同时进行的
- 如果构造函数中没有加super()语句,父类的构造函数将不被调用 。()
- 下列关于派生类的构造函数和析构函数中,错误的是( ) A: 派生类的构造函数会隐含调用基类的构造函数 B: 如果基类中没有默认构造函数,那么派生类必须定义构造函数 C: 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数 D: 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数