zoukankan      html  css  js  c++  java
  • 小谈@override

      @override是jdk1.5增加的注解,主要是用来声明子类的某方法覆盖了父类的某方法。非常简单的注解,但是有个小问题:

      项目最开始使用的是jdk1.6,mvc模式:接口 ----> 实现类。后来项目改成了jdk1.5,结果所有实现类上的有@override注解的方法全部报错,把@override注解删掉就好了。当时感觉比较怪,因为@override是jdk1.5的版本出来的,为什么1.5却不支持?

      

      现在jdk1.5环境下,做如下测试:

      1.提供一个接口和抽象类:

    /*接口*/
    interface MyInter{
        
        public void say();
        
    }
    
    /*抽象类*/
    abstract class MyAbstract{
        
        public abstract void read();
        
    }

      2.继承抽象类,实现接口:

      

      问题出来了:覆盖接口的方法,编译不通过;而另外两个却通过了。

      

      3.将环境换成jdk1.6,发现编译全部通过。

      

      查阅了相关资料,发现:jdk1.5中并不支持接口方法的@override的覆盖。可能是觉得实现了接口,必定要实现方法,否则编译器一样会报错,这样的话,@override就显得多余了。但在jdk1.6中,扩展了,在接口的实现方法上加@override是合法的了。

  • 相关阅读:
    canvas背景粒子动态变化动画
    点击屏幕弹出心形效果
    前端图片的性能优化
    vue的computed和method的区别
    es6的...
    命名路由和命名视图
    编程式路由
    [思维]蚂蚁感冒
    [模板]前缀树 / 字典树及应用
    [模板]三分搜索
  • 原文地址:https://www.cnblogs.com/myCodingSky/p/3581896.html
Copyright © 2011-2022 走看看