在Java中,如果父类和子类中有同名方法,那么在子类中调用该方法时,会优先调用子类的方法。如果我们需要调用到父类的同名方法,有以下几种方法实现。
1.使用super关键字调用父类方法
使用super关键字可以在子类中访问父类的方法或变量。当子类中有同名方法时,可以使用super关键字来调用父类方法。如下所示:
class Parent {
public void method() {
System.out.println("This is parent method.");
}
}
class Child extends Parent {
public void method() {
super.method(); // 调用父类方法
System.out.println("This is child method.");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.method(); // 调用子类方法,输出:This is parent method. This is child method.
}
}
在上面的代码中,Child类继承了Parent类,覆盖了父类的method方法。在子类的method方法中使用super.method()调用了父类的method方法,然后再输出子类的method方法中的内容。
2.使用向上转型调用父类方法
Java中的多态性允许我们将子类对象赋值给父类变量,在使用这种情况下,我们可以通过向上转型来访问父类同名方法。如下所示:
class Parent {
public void method() {
System.out.println("This is parent method.");
}
}
class Child extends Parent {
public void method() {
System.out.println("This is child method.");
}
}
public class Main {
public static void main(String[] args) {
Parent parent = new Child();
parent.method(); // 调用父类方法,输出:This is child method.
}
}
在上面的代码中,Child类继承了Parent类,覆盖了父类的method方法。在main方法中,我们创建了一个Child对象,并将其赋值给Parent类型的变量parent。然后调用parent对象的method方法,输出了子类的method方法中的内容。这种情况下,一定会调用子类的方法,因为程序中parent对象实际上是Child类型的。
总之,在Java中实现调用父类同名方法时,可以使用super关键字或向上转型来访问父类的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 父类子类有同名方法时如何调用的实现 - Python技术站