父类子类构造函数 java_Java基础-继承-子父类的构造函数-子类的实例化过程
时间: 2023-08-05 13:03:31 浏览: 80
Java子类对象的实例化过程分析
在Java中,子类继承父类时,子类的构造函数默认会调用父类的无参构造函数。如果父类没有无参构造函数,那么子类的构造函数必须显式调用父类的有参构造函数。
下面是一个父类和子类的例子:
```java
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Dog extends Animal {
private String breed;
public Dog(String name, String breed) {
super(name);
this.breed = breed;
}
public String getBreed() {
return breed;
}
}
```
在这个例子中,父类Animal有一个有参构造函数,子类Dog也有一个有参构造函数。在子类Dog的构造函数中,我们使用super关键字调用了父类Animal的构造函数,并传递了name参数。
当我们实例化一个Dog对象时,会先调用父类Animal的构造函数,然后再调用子类Dog的构造函数。具体来说,当我们执行以下代码时:
```java
Dog dog = new Dog("Buddy", "Golden Retriever");
```
会执行以下步骤:
1. 创建Animal对象,调用Animal的构造函数,并传递name参数。
2. 创建Dog对象,调用Dog的构造函数,并传递name和breed参数。
因此,最终得到的Dog对象的name值为"Buddy",breed值为"Golden Retriever"。
阅读全文