这道Java面试题你真的理解么?好多大神都回答错误!

来源:互联网 发布:bcm4306 linux 编辑:程序博客网 时间:2024/05/16 17:10

最简单面试题:

代码:

package cn.itcast.sort;public class Demo1 {public static void main(String[] args) {new Zi();}}class Fu{//父类Fu(){show();}void show(){System.out.println("Fu");}}class Zi extends Fu//子类继承父类{void show(){System.out.println("Zi");}}
我使用这道题测试了很多人,但是大多数的答案是Fu,但是实际运行结果是Zi.

关于答案:

1.其实这道面试题很简单,主要考察了Java的一个关键字this,main方法中new的对象是Zi,因此this指代的就是Zi类的对象.
2.我们知道当调用子类的时候先走的是父类的构造方法,因此先走的是父类的构造方法,调用show方法,但是这里隐含了一个关键字,其实在Fu类的构造方法中调用show()的时候省略了关键字this,实际上是this.show();通过上述的介绍我们已经知道this代表的是子类的对象,因此这里调用子类的show方法,而不是父类的show方法!


0 0