那在原本调用父类的对象的地方怎么使用子类重载的方法
时间: 2024-10-08 21:12:48 浏览: 16
子类中重载父类的方法-面向对象课件
在Java中,如果你有一个父类引用指向子类对象,而这个子类重写了父类的某个方法,你可以像平时调用父类方法那样直接调用它。因为Java会自动向上转型,所以即使你用的是父类类型的引用,实际调用的是子类的方法。这利用了Java的动态绑定或者说运行时多态性。
例如,假设你有这样一个结构:
```java
public interface MusicPlayer {
void play();
}
public class BasicMusicPlayer implements MusicPlayer {
public void play() {
System.out.println("Playing basic music");
}
}
public class AdvancedMusicPlayer extends BasicMusicPlayer {
@Override
public void play() {
System.out.println("Playing advanced music with special effects");
}
}
// 然后你在需要的地方这样做:
MusicPlayer player = new AdvancedMusicPlayer(); // 创建AdvancedMusicPlayer实例
player.play(); // 调用play方法,结果是"Playing advanced music with special effects"
```
在这里,`player.play()`实际上是调用了`AdvancedMusicPlayer`的`play`方法,即使`player`是一个`MusicPlayer`类型的引用。这就是多态性的体现。
阅读全文