//测试类
public class TestA {
}
在父类中创建有参构造和无参构造
//父类
public class Fu {
public Fu(){
System.out.println(“父类无参”);
}
public Fu(int i ){
System.out.println(“父类有参”);
}
}
在子类中创建有参构造和无参构造
//子类
public class Zi extends Fu{
public Zi(){
System.out.println(“子类无参”);
}
public Zi(int age){
System.out.println(“子类有参”);
}
}
当我们在测试里面new了子类的对象,发现无法调用父类中的构造方法
构造方法无法被继承
但是当我们只写了调用子类的无参方法,编译就会不一样:
我们会发现,我们只是调用了子类的无参,但是父类的无参也输出了,这是因为在子类的构造方法内,有一个隐藏的super();,我们之前用supre调用的时父类属性,而super()调用的父类的构造方法
这个是系统默认调用的,当我们调用子类的无参构造的时候,他会执行第一个语句,也就是supper(),于是就会去执行父类的无参方法输出父类无参之后,程序继续让下执行,输出子类无参
我们的子类构造方法是有参的,那么我们在测试类上加入参数
在子类的有参内,同样还是有一个super(),同样回调取到父类无参,那怎么获取父类的有参呢?其实我们只需要在子类的构造方法内,在super()的括号内写入参数就可以了
最后
我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习
已经将知识体系整理好(源码,笔记,PPT,学习视频)
-dvVG24DP-1714387522021)]
[外链图片转存中…(img-Jxgv8TNR-1714387522021)]
[外链图片转存中…(img-waBDQthC-1714387522022)]