锁定老帖子 主题:一个有关java继承类上传的问题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-21
class Test3 { int i = 1; public int f() {return i;} static String g() {return "Test3";} } class Test2 extends Test3 { int i = 2; public int f() {return -i;} static String g() {return "Test2";} } public class Test { public static void main(String[] args) { Test2 t2 = new Test2(); Test3 t3 = (Test3) t2; System.out.println(t3.i); System.out.println(t3.f()); System.out.println(t3.g()); } } 结果是什么呢? 自己试了下,但仍然不明白其中的道理. 希望有人帮忙解惑。 谢谢 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-21
输出结果:
1 -2 Test3 也想不明白,等楼下解答 |
|
返回顶楼 | |
发表时间:2008-05-21
关键是那个static 方法.
这个..额... |
|
返回顶楼 | |
发表时间:2008-05-21
to aids198311,
对于 1, -2 你知道 原因了? 能说说吗? |
|
返回顶楼 | |
发表时间:2008-05-21
这种问题弄明白又如何,弄不明白又如何?
实际开发中绝对不应当允许出现这种语法糖 这是维护者的噩梦 好的品质要靠好的习惯来保证 |
|
返回顶楼 | |
发表时间:2008-05-21
to armorking,
面试人员 可不会这么想的 |
|
返回顶楼 | |
发表时间:2008-05-21
这种题确实没意义,不学也罢。
|
|
返回顶楼 | |
发表时间:2008-05-21
垃圾代码哦
|
|
返回顶楼 | |
发表时间:2008-05-21
唉, 我今天 笔试的题目阿,很想知道为什么.
|
|
返回顶楼 | |
发表时间:2008-05-21
子类是无法覆盖父类的static方法的.
由于是父类引用子类实例,所以前面打印1,而非static 方法可以被子类覆盖,所以打印子类方法里的东东! |
|
返回顶楼 | |