java对象会调用父类的方法还是子类对父类重写的方法
时间: 2023-10-07 09:07:43 浏览: 96
Java中,对象调用方法的时候会优先调用子类中对父类方法的重写(Override),如果子类没有重写该方法,则会调用父类的方法。这就是Java中的方法重写机制。
例如,如果有如下的代码:
```java
public class ParentClass {
public void print() {
System.out.println("I am ParentClass");
}
}
public class ChildClass extends ParentClass {
@Override
public void print() {
System.out.println("I am ChildClass");
}
}
public class Test {
public static void main(String[] args) {
ParentClass obj = new ChildClass();
obj.print();
}
}
```
当执行 `obj.print()` 时,会输出 "I am ChildClass",因为子类 `ChildClass` 重写了 `ParentClass` 的 `print()` 方法。
需要注意的是,如果想在子类中调用父类被重写的方法,可以使用 `super` 关键字来实现,例如:
```java
public class ChildClass extends ParentClass {
@Override
public void print() {
super.print(); // 调用父类的 print() 方法
System.out.println("I am ChildClass");
}
}
```
这样,在执行 `obj.print()` 的时候,会先输出 "I am ParentClass",再输出 "I am ChildClass"。
阅读全文