Java中@Override 的作用

在Java中 @Override的作用如下:在覆写(重写)基类的某个方法时,防止自己不小心重载了该方法,而不是覆写该方法。

 

首先说明下重载和覆写的概念:

重载(Overloading:子类改写父类的方法,方法名相同,参数列表不同(个数或类型不同),不过返回值的类型可以相同也可以不同。

补充一下,当两个方法的参数列表相同,即参数的个数与类型相同时,返回类型必须相同,否则编译不通过,返回值的类型不影响重载。而且当两个方法的参数的个数与类型均相同,但各参数的顺序不同时,也算重载。

覆写(Overriding:子类中的方法与父类中的方法名字一致,返回值类型以及参数列表均一致则为覆写(重写)。

 

下面举例说明:

子类test继承于父类father_test,覆写了父类中的方法f(),并在前面添加了@Override。此时编译运行通过,打印出"test"。

class father_test{
	void f(int b) {
		System.out.println("father_test");
	}
}

public class test extends father_test{
	@Override
	void f(int a) {
		System.out.println("test");
		
	}
	
	public static void main(String[] args) {
		test T=new test();
		T.f(1);
	}
}

 

将子类中覆写的方法f()的参数a改成char类型,这时覆写就变成了重载,而编译器就报错了。提示:类型为 test 的方法 f(char)必须覆盖或实现超类型方法。

而去掉@Override语句后编译器不再报错,运行后打印出"father_test"。

class father_test{
	void f(int b) {
		System.out.println("father_test");
	}
}

public class test extends father_test{
	@Override
	void f(char a) {
		System.out.println("test");
		
	}
	
	public static void main(String[] args) {
		test T=new test();
		T.f(1);
	}
}

 

可见 @Override 语句可以防止我们在进行覆写时,不小心误操作,写成了重载。这时编译器会提示我们出现错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值