父类的构造方法只有有参构造,子类有无参构造,能不能创建子类对象
时间: 2024-09-23 18:06:26 浏览: 27
详解 Java继承关系下的构造方法调用
可以的,即使父类只有一个有参构造方法,而子类有无参构造,仍然可以创建子类的对象。在这种情况下,当子类没有覆盖父类的有参构造方法时,Java 编译器会隐式地提供一个默认的无参构造函数,允许你在不传递任何参数的情况下创建子类的对象。
例如:
```java
class ParentClass {
// 有参构造方法
public ParentClass(int param) {
System.out.println("Parent constructor called with " + param);
}
}
class ChildClass extends ParentClass { // 子类,没有显式的构造方法
// 子类没有覆盖父类的构造方法,所以会自动存在一个无参构造
}
public class Main {
public static void main(String[] args) {
// 创建ChildClass对象,尽管ParentClass需要一个参数
ChildClass childObject = new ChildClass();
// 子类虽然没有直接显示地提供无参构造,但依然可以被实例化
}
}
```
在这个例子中,`ChildClass`可以直接创建,因为JVM会为它提供一个默认的无参构造,即使`ParentClass`的构造方法需要一个参数。
阅读全文