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

Java6的@override注解与Java5不同之处

阅读更多
首先看一下下面的示例代码 :

Parent.java
public class Parent...{
    public void parentMethod() ...{
    }
}

IChild.java
public interface IChild ...{
    void interfaceMethod();
}

Child.java
public class Child extends Parent implements IChild ...{

    @Override
    public void parentMethod() ...{
    }

    @Override
    public void interfaceMethod() ...{
    }
}


由于代码很简单,我就不做说明

上述代码在jdk6下可以编译通过

而在jdk5下编译无法通过,输出的错误信息如下:

Child.java:7: 方法未覆盖其父类的方法

    @Override

     ^

1 错误

上面的错误信息说在Child.java第七行的Override注解是不对的,不对的原因是该方法(interfaceMethod)不是父类方法。

当然,实际上这个方法是类实现的接口中方法,但是,这个语法的jdk6的下面是可以通过的,也就是说java6认为类覆盖父类方法与实现接口方法都叫override,而jdk5不是这样认为的,不知道这是当初jdk5的bug,还是当初就是认为覆盖父类方法与实现接口方法是不一样的,不得而知。但是从OO角度来看,覆盖父类方法与实现接口方法都可以认为override,因为他们目的都是一样的,都是为了重用,都是多态的一种表现方式。这从jdk6的支持这个功能就可以看出。

差一点忘了:

标准的java api文档java5与java6对Override annotation的的解释一样的

java5:

Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.

java6:

Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.

两段说明一模一样,让人搞不清楚的是java6文档没有提到Override对interface的支持。
分享到:
评论

相关推荐

    android @override 报错解决方案

    这种问题的根本原因在于Java语言版本的差异以及编译器对`@Override`注解的不同处理方式。 在Java 1.5之前,`@Override`注解主要用于明确指出一个方法是覆盖了父类中的同名方法。而在Java 1.6中,`@Override`的使用...

    详解Java中@Override的作用

    在Java编程语言中,`@Override` 是一个重要的注解,它的主要作用是明确标识一个方法是重写了其父类中的方法。这个注解在代码的可读性和编译时的错误检查方面提供了显著的优势。下面我们将深入探讨`@Override` 的作用...

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被编译器或运行时环境读取。反射(Reflection)是Java的一个强大特性,允许程序在运行时检查类、接口、字段和方法等...

    java通用注解API

    5. **反射与注解** - 通过反射机制,可以在运行时获取类、方法等的注解信息。 - `java.lang.reflect.AnnotatedElement`接口提供了获取注解的方法,如`getAnnotations()`、`isAnnotationPresent()`、`getAnnotation...

    java和ssh注解

    常见的注解如@Override、@Deprecated、@ SuppressWarnings等,它们可以帮助开发者进行类型检查、版本控制和消除警告。自定义注解可以用于更复杂的场景,如ORM框架的实体映射或AOP切面编程。 SSH框架中的注解进一步...

    java 自定义注解验证

    Java提供了内置的注解,如`@Override`、`@Deprecated`等,但自定义注解允许我们根据项目需求定制化这种元数据。 创建自定义注解涉及到以下几个步骤: 1. **定义注解**:使用`@interface`关键字创建注解。例如: ``...

    Java自定义注解实例

    2. **预定义注解**: Java标准库提供了若干预定义注解,如`@Override`、`@Deprecated`、`@ SuppressWarnings`等,用于标记过载、弃用和警告控制。 3. **元注解**: 元注解是用于注解其他注解的注解,如`@Retention`、...

    java注解深入理解

    Java注解是Java编程语言中的一个重要特性,它提供了一种元数据的方式,允许程序员在代码中插入额外的信息,这些信息可以被编译器或者运行时...同时,熟悉如何创建和处理自定义注解也是现代Java开发者的必备技能之一。

    Java注解实现方式

    Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,这些元数据可以被编译器或运行时环境用来执行各种任务,例如代码分析、验证、生成代码、部署等。注解提供了更加灵活和可扩展的方式来处理...

    Java注解.pdf

    ### Java注解详解 #### 一、引言 Java注解是Java 5.0引入的一个强大特性,它为开发者提供了一种灵活的方式来为代码添加元数据。这种元数据可以被开发工具、编译器或者运行时环境所利用,从而增强代码的功能性和可...

    Java Annotation注解技术

    6. **标准注解**:Java预定义的一些注解,如`@Override`(标记重写的方法)、`@Deprecated`(标记已废弃的API)和`@SuppressWarnings`(抑制编译警告)。 ### Annotation的工作原理 当定义了一个注解类型,开发者...

    注解javademo演示

    综上所述,Java注解是一个强大的工具,它简化了代码并提供了额外的元数据信息,使得代码更加易读、易维护,并且能够与各种框架和工具进行更紧密的集成。理解并熟练使用注解对于任何Java开发者来说都是至关重要的。...

    Java中的注解Annotationsnava)1

    首先,我们需要找到所有的`@Override`注解,通过`getType()`和`hasQualifiedName("java.lang", "Override")`来定位。然后,我们创建一个类来表示`@Override`的概念,这样就能更方便地找出那些应该使用但未使用的`@...

    Java实验4 注解.doc

    Java注解(Annotation)是Java语言中的一个重要特性,它允许我们在源代码中嵌入元数据。元数据是关于数据的数据,它可以提供额外的信息,但不直接影响程序的执行。注解的作用在于为编译器、解释器或其他工具提供信息,...

    Java 注解技术视频详解

    Java注解技术是Java平台中一个非常重要的特性,它为元数据提供了强大的支持,使得开发者能够在代码中嵌入额外的信息,这些信息可以被编译器、JVM或第三方工具读取和处理。在本视频教程中,我们将深入探讨Java注解的...

    android&java的注解详解demo

    2. **预定义注解**:Java标准库和Android SDK中包含了许多预定义的注解,如`@Override`, `@Deprecated`, `@NonNull`, `@UiThread`, `@WorkerThread`等,它们在特定场景下有着明确的用途。 三、注解的应用示例 在`...

    java注解使用例子

    Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器、JVM或者第三方工具提供信息。在Java程序中,注解可以被附加到类、接口、方法、变量等元素上,用于执行代码检查、生成代码、部署等任务。本篇...

    java注解大全(非常全面)

    Java标准库提供了若干内置注解,如`@Override`用于指示方法覆盖父类方法,`@Deprecated`标记已过时的方法,`@ SuppressWarnings`用于抑制编译器警告。此外,还可以自定义注解,通过`@Retention`设置保留策略(源码...

    java关于注解使用的例子

    Java注解(Annotation)是Java语言提供的一种元数据机制,它允许程序员在源代码的各个元素(如类、方法、变量等...同时,你还可以了解注解与其他Java特性的交互,如反射和注解处理器,这将有助于提升你的Java编程技能。

    Java 基础(5-8) - 注解机制详解.pdf

    Java基础(5-8) - 注解机制详解 Java中的注解机制是从JDK1.5版本开始引入的特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它主要的作用有四方面:生成文档、编译检查、编译时...

Global site tag (gtag.js) - Google Analytics