java子类如何调用父类方法
子类调用父类方法的方式
在Java中,子类可以通过super关键字或直接调用(继承情况下)来访问父类的方法。以下是具体实现方式:
使用super关键字显式调用
通过super.methodName()直接调用父类的非私有方法。适用于父类方法被子类重写(Override)时仍需要调用父类原始逻辑的场景。
class Parent {
void display() {
System.out.println("Parent method");
}
}
class Child extends Parent {
@Override
void display() {
super.display(); // 调用父类方法
System.out.println("Child method");
}
}
直接调用未被重写的方法
若父类方法未被重写,子类可直接通过方法名调用,此时super可省略。
class Parent {
void print() {
System.out.println("Parent method");
}
}
class Child extends Parent {
void callParent() {
print(); // 隐式调用父类方法
}
}
调用父类构造方法
通过super()在子类构造方法中调用父类构造方法,必须位于子类构造方法的第一行。
class Parent {
Parent(String msg) {
System.out.println(msg);
}
}
class Child extends Parent {
Child() {
super("Calling parent constructor"); // 调用父类构造方法
}
}
注意事项
- 父类的
private方法无法通过super调用。 - 静态方法属于类而非实例,使用
super调用静态方法会导致编译警告,应直接用父类名调用(如Parent.staticMethod())。 - 若父类与子类不在同一包且父类方法为默认访问权限(无修饰符),则子类无法访问该方法。







