由于代码很简单,我就不做说明
上述代码在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的支持。
在Eclipse或MyEclipse中开发时,尽管使用JDK的版本是JDK1.6,上面的代码还是会通不过编译的,因为你在建工程时,Eclipse默认的编译器使用的是1.4或者1.5,所以你要把编译器的版本修改为1.6才行,MyEclipse是设置成6.0,其实就是1.6Eclipse中的1.6.
相关推荐
现象: … java: 1801: method does not override a method from its superclass @Override… 原因: Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 ...
9 Java @override报错的解决方法 10 js实现 选中子页面的checkbox,点击确认,将选中的数据显示到父页面 11 解析oracle的rownum 12 ava web项目中开放一个webservice接口实例 13 js方式实现 系统时间显示 14 js 按...
NULL 博文链接:https://thaipine.iteye.com/blog/2354220
网上搜了一堆,都无法生效,最终找到了一个完美解决方案: 在代码层跳出SSL验证 1、观察异常日志信息如下: 2、新增跳过证书的类,TrustAllTrustManager.java,代码如下: public class TrustAllTrustManager ...
其概念是不是新的 (灵感来自于 Sinatra, Express JS, Play Framework),但目的是提供一个清晰,简单易用的模块化解决方案。 pippo可用于中小型应用,并应用在基于微服务架构的应用程序中。 示例代码: ...
一、关于Java 1、Java的三种体系: J2SE 用于桌面开发,低端商务开发(Java to Standard Edition) ; J2ME 用于移动电话、电子消费品、嵌入式开发(Java to Micro Edition) ; J2EE 企业级解决方案的开发,基于WEB的...
再看看这个代码:一看就知道有问题, 这里 就有个很好的解决办法,在写public @interface MyAnnotation {}这样的类的时候,下面的代码上的错误提示就是结束的! public class dsds { public static void main(String[] ...
方法的重写(override) 74 隐藏/封装(encapsulation) 75 为什么需要封装?封装的作用和含义? 75 使用访问控制符,实现封装 76 封装的使用细节 76 多态(polymorphism) 76 为什么需要多态? 76 如何实现多态? 77 方法...
java.lang.RuntimeException: stop failed. at android.media.MediaRecorder.stop(Native Method) 解决办法: 在stop以前调用setOnErrorListener(null);就行了! 相关代码: /** 开始录制 */ @Override ...
java版斗地主源码 2016/4/29 #MeiZiNews #夜间模式:Colorful 问题 RecyclerView的个别item的颜色还是前一个主题的 最后我在 clearRecyclerViewRecyclerBin下, 增加((RecyclerView) rootView).getRecycledViewPool...
A new session could not be created. (Original error: Requested a new session but one was in progress) (WARNING: The server did ...Driver info: io.appium.java_client.android.AndroidDriver等问题的解决之道
解决多线程当中共享资源冲突的问题 1. 冲突问题展示: /* * 共享资源冲突的问题 */ class SingleThread implements Runnable { // 共享资源,100张票 private static int ticket = 100; @Override public void ...
Jogger 引入了其他框架( 、 、 和 )的最佳创意来创建一个在 Java 语言中不会感到陌生的解决方案。 Jogger 可以。 它也可以运行。入门首先,首先,然后创建一个具有main方法的类,如下所示: public class Main { ...
子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是...
一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang....
3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...
因为在Java库函数里,PriorityQueue是基于小堆建立的,所以当我们需要大堆的时候需要对它进行改建。 方法一: static class com implements Comparator { //定义一个静态内部类,继承Comparator接口,并重写他的...