java 如何调用子类方法
调用子类方法的基本方式
在Java中,调用子类方法通常通过继承和多态实现。子类继承父类后,可以重写父类方法或定义新方法。调用时需注意对象实际类型。
创建子类对象并直接调用

class Parent {}
class Child extends Parent {
void childMethod() {
System.out.println("子类特有方法");
}
}
// 调用示例
Child child = new Child();
child.childMethod();
通过父类引用调用子类方法
若需通过父类引用调用子类特有方法,必须进行向下转型(类型强制转换)。这是多态的典型应用场景。
Parent parent = new Child(); // 向上转型
((Child)parent).childMethod(); // 向下转型后调用
注意事项

- 向下转型前应使用
instanceof检查类型,避免ClassCastException - 只有实际对象确实是子类实例时才能成功转型
方法重写时的调用场景
子类重写父类方法后,通过父类引用调用该方法时会自动执行子类实现(动态绑定)。
class Parent {
void commonMethod() {
System.out.println("父类方法");
}
}
class Child extends Parent {
@Override
void commonMethod() {
System.out.println("子类重写方法");
}
}
// 调用示例
Parent obj = new Child();
obj.commonMethod(); // 输出"子类重写方法"
接口与实现类场景
通过接口引用调用实现类特有方法时,同样需要类型转换:
interface MyInterface {}
class Impl implements MyInterface {
void implMethod() {
System.out.println("实现类方法");
}
}
// 调用示例
MyInterface ref = new Impl();
((Impl)ref).implMethod();
最佳实践建议
- 优先通过子类类型直接调用方法
- 必要使用多态时,确保类型转换的安全性
- 避免过度使用向下转型,可能破坏封装性
- 考虑使用访问者模式等设计模式替代频繁的类型检查






