子类和父类的构造方法关系

在Java中,子类在初始化时会自动调用父类的无参构造方法。如果父类没有无参构造方法,子类必须显式地调用父类的构造方法,或者提供一个包含调用父类构造方法的构造方法。

当子类的构造方法被调用时,JVM会在初始化子类的过程中自动调用父类的构造方法。这个过程是自动的,不需要显式地在子类构造方法中调用父类的构造方法。

但是,如果父类有多个构造方法,子类不会自动调用父类的所有构造方法,只会默认调用父类的无参数构造方法。如果需要在子类中调用父类的其他构造方法,需要在子类的构造方法中使用super()来显式地调用所需的父类构造方法。

public class Parent {
public Parent() {
System.out.println("Parent class's parameterless method called");
}
}
public class Son extends Parent{
public Son() {
System.out.println("Son class's parameterless method called");
}
public Son(int i) {
System.out.println("Son class's parameter method called");
}
public static void main(String[] args) {
Son son1 = new Son();
Son son2 = new Son(1);
}
}
Parent class's parameterless method called
Son class's parameterless method called
Parent class's parameterless method called
Son class's parameter method called
Process finished with exit code 0

本文作者:xiaoovo

本文链接:https://www.cnblogs.com/xiaoovo/p/17794669.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   xiaoovo  阅读(290)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑