java override 没写_Java @Override注解 写与不写的区别

/*

一般来说,写与不写没什么区别,JVM可以自识别

写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法 (控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。

在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法时实现覆盖;如果条件不符合时,则是当成新定义的方法使用。

所以如果想覆盖基类方法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误

*/

//示例:

class Test{

public void t(String s){

System.out.println("Test.t(String):" + s);

}

public void t2(int i){

System.out.println("Test.t2(int):" + i);

}

public void t3(){

t("override");

}

}

11.public class OverrideTest extends Test{

12. @Override//此处写与不写都能覆盖基类的t(String)方法

13. public void t(String s){

14. System.out.println("OverrideTest.t(String):" + s);

15. }

16. //此处不能写@Override注解,因为方法参数类型与基类的t2方法的参数类型不同

17. //所以此处只能新定义了一个t2(float)方法,并不能实现覆盖

18. public void t2(float f){

19. System.out.println("OverrideTest.t2(float):" + f);

20. }

21. public static void main(String[] args){

22. OverrideTest ot = new OverrideTest();

23. ot.t("china34420");

24. ot.t2(1.0f);

25. ot.t2(1);

26. ot.t3();

27. }

28.}

29./*输出:

30. OverrideTest.t(String):china34420

31. OverrideTest.t2(float):1.0

32. Test.t2(int):1

33. OverrideTest.t(String):override

34.*/

35.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值