Java中,在执行子类的构造方法之前或者子类没有明确指定构造方法,会自动调用父类的无参构造方法。
super的三种使用情况:
- 访问父类方法中被覆盖的方法。
- 调用父类构造方法。
- 访问父类中的隐藏成员变量。
class A{
int a;
A(){
a = 3;
System.out.println(a);
}
void dosomething(){
System.out.println("A");
}
}
class B extends A{
int a;
B(){
a = 5;
System.out.println(a);
}
void dosomething(){
super.dosomething();
System.out.println("B");
}
}当在main方法中执行B b = new B();
b.dosomething();输出结果:3
5
A
B父类中的构造方法不能被子类继承,子类只能使用自己的构造方法或者默认的无参构造方法。
父类定义有参构造方法时,子类定义无参的构造方法的时候编译器自动添加super()会出现报错。(父类没有与之对应的无参构造方法)

本文详细解析了Java中子类构造方法如何调用父类构造方法的机制,并通过具体示例说明了super关键字的三种使用场景,包括访问父类方法、调用父类构造方法及访问父类成员变量。
1763

被折叠的 条评论
为什么被折叠?



