`
mshijie
  • 浏览: 94644 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

@Override的在1.5和1.6中的不同含义

    博客分类:
  • Java
阅读更多

今天在用ant编译的时候遇到一个问题,老是提示 @Override错误 方法未覆盖其父类的方法。在eclipse中都能正确编译的。一整鼓捣之后发现,path设置的问题,ant使用的是jdk1.5编译,在eclipse 中使用的是jdk1.6,编译的。问题就来了。才发现,@Overrride注解在1.5和1.6中含义竟然不相同。
如下面的代码:

public interface SomeInterface{
    public void methodTwo();
}

public class Base{
    public void methodOne(){
    }  
}

public class Sub extends Base implements SomeInterface{
    @Override
    public void methodOne(){
    }  
    @Override
    public void methodTwo2(){
    }
}
 


使 用JDK1.6编译没有问题,使用JDK1.5编译,会报@Override方法未覆盖其父类的方法。实际上这个方法是类实现的接口中方法,但是,这个语 法的jdk1.6的下面是可以通过的,也就是说jdk1.6认为类覆盖父类方法与实现接口方法都叫override,而jdk1.5不是这样认为的,不知 道这是当初jdk1.5的bug,还是当初就是认为覆盖父类方法与实现接口方法是不一样的,不得而知。但是从OO角度来看,覆盖父类方法与实现接口方法都 可以认为override,因为他们目的都是一样的,都是为了重用,都是多态的一种表现方式。这从jdk1.6的支持这个功能就可以看出。

分享到:
评论

相关推荐

    android @override 报错解决方案

    android @override 报错:就是说Java 1.5的编译器默认对父类的方法进行覆盖,采用@Override进行说明;但1.6已经扩展到对接口的方法;所以如果还是以Java 1.5的编译器来编译的话,会出现错误

    java关于@override.md

    对Java中@override个人理解阐述,希望能帮大家更好理解。

    分享一下@Override标签背后的小秘密

    很好很好的Java知识,一个关于Java标签的技术知识,非常的好用哦

    详解Java中@Override的作用

    主要介绍了详解Java中@Override的作用的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下

    loveincode#notes#Multiple markers at this line @Override的解决方法1

    使用Eclipse 进行项目开发,在实现类中的方法前面如果添加@Override就提示“Multiple markers at this line”的错误,问题

    AndroidStudio中重载方法@Override的使用详解

    在我们使用Android Studio时,创建一个类是继承于Android中已有的类时,我们会对原有类中的方法进行重载,Android Studio为我们提供了快捷的插入重载的方法,便于开发、减轻了工作量。 当我们继承一个Android中已有...

    Android代码-DaemonService

    继承AbsHeartBeatService抽象心跳服务,在onHeartBeat()中处理自己的任务,具体保活策略不需要关心 public class HeartBeatService extends AbsHeartBeatService { @Override public void onStartService() { } ...

    MD风格的Android悬浮工具栏FloatingToolbar.zip

     @Override  public void onMorphEnd() {  }  @Override  public void onMorphStart() {  }  @Override  public void onUnmorphStart() {  }  @Override  public void onUnmorphEnd() {  } ...

    Android下拉刷新上拉加载源码

    @Override public void onRefresh() { mHandler.postDelayed(new Runnable() { @Override public void run() { start = ++refreshCnt; items.clear(); geneItems(); // mAdapter....

    gallery简单实现 图片调整

    @Override protected void onCreate Bundle savedInstanceState { super onCreate savedInstanceState ; setContentView R layout main ; main imageView ImageView findViewById R id main imageView ; ...

    Android代码-Android-CropView

    导入lib-cropview并在AndroidManifest.xml中添加Activity * 实现CropperHandler并实现方法 ```java @Override public Activity getActivity() { return this; } @Override public CropperParams getParams...

    Android代码-Rocket

    @Override public String taskName() { //任务名称,默认使用类名 return "test1"; } @Override public void run() throws Throwable { //执行的任务 Thread.sleep(6000); } @NonNull @Override ...

    Android代码-flutter_inappbrowser

    Flutter InAppBrowser Plugin A Flutter plugin that allows you to ...@override void initState() { super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildConte

    Android蓝牙通信框架BluetoothKit.zip

    BluetoothKit是一款功能强大的Android蓝牙通信框架,支持经典蓝牙和低功耗蓝牙设备混合扫描,提供了一系列简单易用的接口用于低功耗蓝牙设备的连接,数据读写,通知等。 特点 一、支持经典蓝牙和BLE蓝牙...

    Android代码-安卓BLE API封装

    自动开关蓝牙 如果没有没授予打开蓝牙的权限,则会自动监听蓝牙状态,在蓝牙打开时自动启动连接 示例 创建BleBus的监听器 IBusListener listener = new IBusListener() { @Override public void deviceConnected...

    override-decorator:ES7 的简单覆盖装饰器

    启用阶段0或es7.decorators在巴别,然后标记该意图覆盖超类与性质性质@Override 。 class A { a ( ) { /* ... */ } } class B extends A { @ Override a ( ) { /* ... */ } } 如果装饰的属性没有覆盖父...

    android的 AIDL 例子

    @Override // ��ʾname��age public String display() throws RemoteException { return "name: "+this.name+"; age: "+this.age; } @Override // ����age public synchronized void setAge(int ...

    java用填充多边形的方法填充一个三角形Demo

    @Override public void paintIcon(Component c, Graphics g, int x, int y) { Graphics2D g2d = (Graphics2D) g; Polygon plygon = new Polygon(); plygon.addPoint(0, 30); plygon....

Global site tag (gtag.js) - Google Analytics