Java 中的覆盖@Override注解 写与不写的一点点理解
发布日期:2021-09-29 01:26:54 浏览次数:6 分类:技术文章

本文共 1038 字,大约阅读时间需要 3 分钟。

Java代码  
  1. /*俺的菜鸟笔记 
  2.     Java 中的覆盖@Override注解 写与不写的一点点理解 
  3.     一般来说,写与不写没什么区别,JVM可以自识别 
  4.     写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法 
  5.                         (控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。 
  6.     在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法是即实现覆盖; 
  7.     如果条件不符合时,则是当成新定义的方法使用。 
  8.     所以如果想覆盖基类方法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误 
  9. */  
  10. //示例:  
  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.   
  36. class Test{  
  37.     public void t(String s){  
  38.         System.out.println("Test.t(String):" + s);  
  39.     }  
  40.     public void t2(int i){  
  41.         System.out.println("Test.t2(int):" + i);      
  42.     }  
  43.     public void t3(){  
  44.         t("override");    
  45.     }  
  46. }  

转载地址:https://blog.csdn.net/happydecai/article/details/80194795 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java中this关键字的用法
下一篇:Java中接口里定义的成员变量

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月13日 20时10分23秒