黑马程序员技术交流社区
标题:
黑马程序员-基础测试题第7题
[打印本页]
作者:
李文思
时间:
2015-7-11 15:28
标题:
黑马程序员-基础测试题第7题
------<a target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
复制代码
这是我对运行结果的一些简单理解,望大家能给出更详细的解答。
package com.itheima;
/**7、 分析运行结果,说明原理。
* 答:主函数中,b.fun1()运行结果是456,因为是B类引用建立了B类的对象,B类继承了A类的fun1()方法,并覆写了父类的fun2()方法,
* 所以b.fun1()调用的是子类的fun2()方法。运行结果是456。
* a.fun1()运行结果是456,因为B b = new B(),将b赋值给A a时,即相当于A a = new B()。这是一个多态,父类引用指向子类对象。
* 在多态中的规律是,运行的方法都是运行子类的方法。
* 所以a.fun1()调用的是子类的fun2()方法,运行结果是456
* @author liwensi
* */
public class Test7 {
public static void main(String[] args) {
B.main(null);
}
}
class A {
void fun1() {
System.out.println(fun2());
}
int fun2() {
return 123;
}
}
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();
}
}
复制代码
作者:
guoningyan
时间:
2015-7-12 14:00
学习了,我也有这道题
作者:
825176857
时间:
2015-7-12 14:41
学习到了!分析的很到位!
作者:
Claw
时间:
2015-7-12 14:50
基础测试题是允许讨论的吗?
作者:
易阳
时间:
2015-7-12 14:56
学习了,分析的挺透彻
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2