今天在用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的支持这个功能就可以看出。
分享到:
相关推荐
- **重写方法** 通过在派生类中使用 `override` 关键字来实现对基类方法的重写。 - **抽象方法** 在抽象类中声明,没有方法体,必须在派生类中实现。 **1.6.6.5 方法重载** - 方法重载允许在同一个类中定义多个同名...
Debug.WriteLine 和 Trace.WriteLine 用于输出调试信息,但前者只在调试模式下有效,而后者在生产环境中也可以使用。 **3.13 Debug Build 与 Release Build 的差异** Debug Build 包含调试信息,而 Release Build ...
通过提供不同的参数列表,可以在同一个类中定义多个同名的方法。例如: ```csharp class MyClass { public void Method(int x) { } public void Method(string s) { } } ``` ##### 1.6.7 其他功能成员 ###### ...
- **定义**:Java Applet是一种在浏览器中运行的小程序。 - **创建过程**: 1. 编写Applet类,继承自`java.applet.Applet`。 2. 实现`paint`方法来绘制图形。 3. 编译并嵌入HTML页面中。 **1.7 什么是JSP** - *...
- **Overload**: 方法重载,允许在同一类中定义多个同名方法,但参数列表不同。 - **Override**: 方法覆盖,子类重新定义父类中的方法,必须保持方法签名一致。 - **Overloaded的方法是否可以改变返回值类型?**: 不...
- **解释**: 一个在字符串常量池中,另一个是在堆内存中通过`new`关键字创建。 **1.33 String与StringBuffer的区别** - **String**: 不可变,每次修改都会创建新的对象。 - **StringBuffer**: 可变,可以在原有对象...
- **应用**: 在可能发生异常的地方使用`try`块,在`catch`块中处理异常,在`finally`块中释放资源。 **1.44 常见的runtime exception** - **常见类型**: `NullPointerException`, `ArrayIndexOutOfBoundsException`...
也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...
方法重载允许在一个类中拥有相同名称但参数列表不同的多个方法。例如: ```csharp public class Calculator { public int Add(int x, int y) { return x + y; } public double Add(double x, double y) { ...
学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 ...
**2.42 类和接口中方法和属性的比例至少是2:1** - 类中的方法数量应多于属性数量,以确保良好的封装。 **2.43 避免使用一个成员的接口** - 接口中应包含多个成员,避免使用只有一个成员的接口。 **2.44 努力使每...