方法覆盖:
这不仅仅是一个命名问题,而是 Java 的一个基本特性。
它基于动态方法调度的概念。
动态方法调度:
是在运行时而非编译时解决对重叠方法的调用的机制。
允许在 Java 中实现多态性。
工作原理:
超类引用变量可以引用子类对象。
当通过超类引用调用重写的方法时,要执行的方法的版本根据调用时对象的类型确定。
因此,要执行的方法的选择发生在运行时。
重要性:
引用对象的类型(而不是引用变量的类型)决定将执行哪个版本的重写方法。
这允许由超类引用变量引用的不同类型的对象调用不同版本的重写方法。
程序结构:
超类:Sup,使用 who() 方法。
子类:Sub1和Sub2,都重写who()方法。
在main()中执行:
创建对象 superOb(类型 Sup)、subOb1(类型 Sub1)和 subOb2(类型 Sub2)。
Sup类型的supRef引用变量用于引用不同的对象。
行为:
程序输出:
根据引用对象的类型(superOb、subOb1 或 subOb2),调用并显示 who() 方法的相应版本。
这演示了动态调度的概念,其中执行的方法是在运行时决定的,允许实现多态性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3