在Java编程语言中,继承是一种非常重要的特性,它允许子类继承父类的方法和属性。子类不仅能够使用自己的成员,还可以使用父类中定义的方法。以下是子类调用父类方法的几种常见方式:
1. 直接调用
当子类中未对父类的方法进行重写(即没有使用@Override注解覆盖该方法)时,子类可以直接调用父类的方法。这种方式非常简单直接,如下所示:
public class Parent {
public void method() {
System.out.println("父类方法");
}
}
public class Child extends Parent {
public void callParentMethod() {
method(); // 直接调用父类方法
}
}
在这个例子中,Child类继承自Parent类,并且callParentMethod方法直接调用了method(),输出将是“父类方法”。
2. 通过super关键字
如果子类中重写了父类的方法,那么要调用父类中被重写的方法,就需要使用super关键字。这通常发生在需要访问父类中被覆盖的方法的逻辑时。以下是一个示例:
public class Parent {
public void method() {
System.out.println("父类方法");
}
}
public class Child extends Parent {
@Override
public void method() {
System.out.println("子类方法");
}
public void callSuperMethod() {
super.method(); // 使用super调用父类被重写的方法
}
}
在这个例子中,Child类重写了method()方法,并在callSuperMethod中使用了super.method()来调用父类的method()。
3. 通过对象引用
当子类对象引用指向的是父类实例时,可以通过该引用调用父类的方法。这种方式在多态中非常常见,如下所示:
Parent parent = new Child();
parent.method(); // 输出:父类方法
在这个例子中,parent是一个Parent类型的引用,但它指向了一个Child对象。调用method()时,由于Child类继承了Parent类,并且没有重写该方法,所以执行的是Parent类中的method()。
总结来说,Java中子类调用父类方法有三种主要方式:直接调用、通过super关键字调用和通过对象引用调用。这些方式为Java的继承和多态提供了强大的功能,使得代码更加模块化和可复用。
