黑马程序员技术交流社区
标题:
不知道这道题解的对不对
[打印本页]
作者:
我叫MT
时间:
2014-2-15 23:07
标题:
不知道这道题解的对不对
package com.itheima;
/**
* @param args
* 分析运行结果,说明原理。
*/
class A{
void fun1(){
System.out.println(fun2());
}
int fun2(){
return 123;
}
}
public class Test5 extends A{
int fun2(){
return 456;
}
public static void main(String args[]){
Test5 b = new Test5();
b.fun1();//System.out.println(fun2()
A a = b;
a.fun1();
}
}
/*
* 分析:b.fun1();当子类Test5出现和父类A一模一样的函数时,当子类调用子类函数fun2()会覆盖父类函数fun2()并
* 运行子类函数fun2()的内容,这就是覆盖的特性,所以运行结果是子类的返回值456。
* A a = b;父类的引用指向了自己的子类对象,类型提升,这是多态的体现
* a.fun1();父类的引用也可以接收自己的子类对象,成员函数在多态调用时,编译看左边,运行看右边,运行结
* 果还是子类的方法,所以运行结果是子类的返回值456。
* */
复制代码
作者:
星期六
时间:
2014-3-18 09:56
没错啊,都自问自答了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2