多态的体现。
代码如下;
package TestMENG;
public class Base {
int i = 99;
public void amethod() {
System.out.println(" Base.amethod() ");
}
Base() {
amethod();
}
}
package TestMENG;
public class Derived extends Base {
int i = -1;
public static void main(String argv[]) {
Base b = new Derived();
System.out.print(b.i);
b.amethod();
}
public void amethod() {
System.out.print(" Derived.amethod() ");
}
}
控制台打印输出: Derived.amethod() 99 Derived.amethod()
上面代码经过debug调试 效果如下
当执行到Base()方法中的 amethod()方法时 将会跳转到子类Derived.amethod()方法中。


涉及到的知识点:
1.父类的属性 不能被子类覆盖。
2.在实例化子类对象时,如果父类的实例引用了子类的对象(多态),例如:父类 实例 = new 子类()
那么该引用在调用父类的方法时遵循以下原则
2.1 该实例 可以调用父类中特有的方法。(该方法未被子类重写)
2.2 该实例如果调用父类中的方法,若该方法被子类重写,则一定调用的是在子类中重写后的该方法。
2.3 该实例不可以调用父类中没有的方法。(该方法子类特有)
本文通过一个Java代码示例详细解析了多态的概念,展示了如何通过父类引用调用子类重写的方法,以及在多态情况下方法调用的具体规则。

532

被折叠的 条评论
为什么被折叠?



