Java继承与方法重写:哪个方法被调用?
Java继承与方法重写案例解析
您提供的Java代码演示了面向对象编程中的继承和方法重写概念:javaclass SuperClass { void display() { System.out.println('This is a superclass.'); }}
class SubClass extends SuperClass { @Override void display() { System.out.println('This is a subclass.'); }}
public class Main { public static void main(String[] args) { SubClass sub = new SubClass(); sub.display(); }}
代码解析:
-
SuperClass类: 定义了一个display()方法,用于输出'This is a superclass.'。 -
SubClass类: - 继承自SuperClass,获得了父类的所有属性和方法。 - 使用@Override注解重写了display()方法,输出'This is a subclass.'。@Override注解帮助编译器检查是否正确重写了父类方法,避免拼写错误。 -
Main类: - 创建了一个SubClass类型的对象sub。 - 调用sub.display()时,由于方法重写机制,实际调用的是SubClass类中重写后的display()方法。
输出结果:
运行这段代码,输出结果为:
This is a subclass.
总结:
- 当子类重写了父类的某个方法时,调用子类对象该方法,实际执行的是子类重写后的方法。-
@Override注解用于明确标识方法重写,提高代码可读性和可维护性。- 这就是Java多态性的体现,父类引用可以指向子类对象,从而实现更灵活的代码设计。
原文地址: https://www.cveoy.top/t/topic/pTc 著作权归作者所有。请勿转载和采集!