class A {
void fun1() {
System.out.println(fun2());
}
int fun2() {
return 123;
}
}
public class B extends A {
int fun2() {
return 456;
}
public static void main(String args[]) {
B b = new B();
b.fun1();
A a = b;
a.fun1();
}
}
分析下运行结果作者: 蓝枫 时间: 2014-3-23 10:50
结果为:456 456作者: 坏米饭 时间: 2014-3-23 11:00
B b = new B();
b.fun1();//456 子类继承父类方法,void fun1() {
System.out.println(fun2());//此处省略了 this.fun2()
} 所以子类调用的时候,是b.fun2()
A a = b; //多态,父类引用指向子类对象,将b提升为A类。
a.fun1();//父类的引用指向的是b对象,即,b.fun1();作者: 龙健 时间: 2014-3-23 14:39
运行结果:456 456