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

最简单面试题:

代码:

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方法!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值