JAVA中名称屏蔽的问题

在JAVA中,若基类拥有某个被多次重载的方法名称,那么在导出类中重新定义该方法名称时并不会屏蔽在基类中的任何版本,这与C++不同。因此,无论在该层或者其它基类中对方法进行定义,重载机制仍可以正常运行,看如下代码段:

package access;
import java.util.*;
class Homer{
	char doh(char c){
		System.out.println("doh(char)");
		return 'd';
	}
	float doh(float f){
		System.out.println("doh(float)");
		return 1.0f;
	}
}
class Milhouse{
	
}
class Bart extends Homer{
	void doh(Milhouse m){
		System.out.println("doh(Milhouse)");
	}
}
public class Hide {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Bart b = new Bart();
		b.doh(5);
		b.doh('x');
		b.doh(1.909331315468f);
		b.doh(new Milhouse());
	}

}
此程序运行结果为:


从运行结果可以看到,虽然Bart引入了一个新的重载方法,但在Bart中Homer的所有重载方法均可以使用。

若我们想要覆写某个方法时,可以使用”@Override”注解,虽然不是关键字,但可以把它当做关键字来使用,此注解可以帮助我们避免重载错误的发生,当不留心重载而并非覆写了某个方法时,编译器会生成一条错误信息。


@Override注解可以防止我们在不想重载时意外的进行了重载。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值