编译器版本造成的问题? ( 积分: 10 )

  • 主题发起人 主题发起人 bryantd
  • 开始时间 开始时间
B

bryantd

Unregistered / Unconfirmed
GUEST, unregistred user!
在JDK1.5下:
public interface IVector extends Comparable<IVector>{……} //定义了一个接口
abstract class VectorBase implements IVector{
………………
public int compareTo(IVector v){……}
//在这个抽象类中实现了comparable接口中的compareTo函数
………………
}
class Vector extends VectorBase{……}
但是在JDK1。4下面,首先不支持public interface IVector extends Comparable<IVector>这样的写法,所以不得不把<IVector>去掉,但是这样一来,class Vector类不能通过编译,原因是:
“Vector类应该定义成abstract的,因为它没有实现Comparable接口中的compareTo()函数”
请问大家造成这个问题的原因是不是因为在VectorBase类中实现的compareTo()函数JDK1.4并不认为是对Comparable接口中声明的compareTo()函数的重写,因为参数的问题?
在1。5下能通过编译是不是因为1。5支持public interface IVector extends Comparable<IVector>这样的写法?在1。4下怎么解决这个问题呢?
清高手指教。
 
在JDK1.5下:
public interface IVector extends Comparable<IVector>{……} //定义了一个接口
abstract class VectorBase implements IVector{
………………
public int compareTo(IVector v){……}
//在这个抽象类中实现了comparable接口中的compareTo函数
………………
}
class Vector extends VectorBase{……}
但是在JDK1。4下面,首先不支持public interface IVector extends Comparable<IVector>这样的写法,所以不得不把<IVector>去掉,但是这样一来,class Vector类不能通过编译,原因是:
“Vector类应该定义成abstract的,因为它没有实现Comparable接口中的compareTo()函数”
请问大家造成这个问题的原因是不是因为在VectorBase类中实现的compareTo()函数JDK1.4并不认为是对Comparable接口中声明的compareTo()函数的重写,因为参数的问题?
在1。5下能通过编译是不是因为1。5支持public interface IVector extends Comparable<IVector>这样的写法?在1。4下怎么解决这个问题呢?
清高手指教。
 
这个论坛的java好像不是很热啊?
 
首先,在java1.4中,是不知吃泛型的,你肯定不能变已通过!
如果去掉,则参数明显不是重写!
出现这种错误很正常!
你的基础不牢,基本问题出错!
 
帮顶

--------签名档---------------------------

惊爆开源站

http://www.source520.com http://www.source520.net
80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
 
后退
顶部