【问题标题】:JAVA: override interface methodJAVA:覆盖接口方法
【发布时间】:2014-07-17 00:49:16
【问题描述】:

我有接口:

interface operations{  
    void sum();  
}   

我想上课:

class matrix implements operations {  
    @override   
    void sum(matrix m) {  
    } 
}

class vector3D implements operations {  
    @override  
    void sum(vecor3D v) {  
    }
}

如何做到这一点? 我尝试过这样的事情:

interface operations < T > {  
    <T> void sum(T t);  
}

class matrix implements operations<matrix>{
    @Override
    void sum(matrix m){};
    }
}

class vector3D implements operations<vector3D>{
    @Override
    void sum(vector3D v){};
}

但它不起作用。

【问题讨论】:

  • 阅读泛型方法以及它们如何与泛型类交互。
  • 在实现操作时,您必须指定哪个是实际类型,即操作
  • @Override 有一个大写的O。如果您使用小写的o,它将毫无用处。 (或者更有可能不会编译。)

标签: java methods interface overriding


【解决方案1】:

不要将类型参数添加到接口类型。您还应该指定您实现的接口的通用参数:

interface operations<T> {  
    void sum(T t);  
}



class matrix implements operations<matrix> {  
    @Override   
    public void sum(matrix m){  
    } 
}



class vector3D implements operations<vecor3D> {  
    @Override  
    public void sum(vecor3D v){  
    }
}

【讨论】:

  • 我还注意到方法之前缺少“公共”
猜你喜欢
  • 2016-08-12
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 2014-05-23
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
相关资源
最近更新 更多