父类有参数构造方法,子类无参数构造方法,用super能调用父类构造方法嘛
时间: 2024-05-04 10:21:49 浏览: 105
可以的。在子类的无参构造方法中,可以使用 `super()` 调用父类的无参构造方法。如果父类只有带参数的构造方法,子类无法继承该构造方法,但是可以在子类的构造方法中使用 `super()` 调用父类的带参数的构造方法。例如:
```java
public class ParentClass {
private int age;
public ParentClass(int age) {
this.age = age;
}
}
public class ChildClass extends ParentClass {
private String name;
public ChildClass(String name) {
super(20); // 调用父类的带参数构造方法
this.name = name;
}
}
```
在上面的例子中,子类 `ChildClass` 中没有定义任何构造方法,因此会自动继承父类的构造方法。但是父类只有一个带参数的构造方法,因此需要在子类的构造方法中使用 `super(20)` 调用父类的构造方法。这样,子类就可以通过调用父类的构造方法来初始化父类的属性。
相关问题
关于继承关系中构造方法,下列说法正确的是A 子类可以直接使用父类名字来调用父类的构造方法B子类只能用super来调用父类构造方法C如果父类构造方法需要参数,那么子类构造方法也需要带参数D子类构造方法可以多次调用父类构造方法
正确的说法是B子类只能用super来调用父类构造方法。子类在实例化的时候,必须先实例化父类,因此需要调用父类的构造方法。子类可以通过super关键字调用父类的构造方法,也可以不调用父类构造方法,但是在这种情况下,会默认调用父类的无参构造方法。如果父类构造方法需要参数,那么子类构造方法也需要带参数,并且在子类构造方法中必须调用父类构造方法。但是,子类构造方法只能调用一次父类构造方法,而且必须是在子类构造方法的第一行。因此,D子类构造方法不可以多次调用父类构造方法。
下列关于继承与构造方法的描述,正确的是( )。A、子类对象创建时先调用自身构造方法,再调用父类构造方法B、子类可通过super关键字调用父类的构造方法C、子类无条件继承父类无参构造方法D、父类对象创建时先调用自身构造方法,然后调用子类构造方法
B、子类可通过super关键字调用父类的构造方法是正确的描述。其他选项描述均不正确:
A、子类对象创建时会先调用父类的构造方法,然后再调用自身的构造方法。
C、子类只有在没有定义构造方法时才会继承父类的无参构造方法,如果子类已经定义了构造方法,则不会自动继承父类的构造方法。
D、父类的构造方法不会调用子类的构造方法。
阅读全文