Java中的对象接口

Java中的对象接口,java,Java,我有接口 public interface Arithmetic { Object sum(Object o); } 我需要在矩阵类中指定一个求和函数 public class Matrix implements Arithmetic{ int[][] data; public Matrix ... public Object sum(Object o){ // then I have to add two matrix } } 请告诉我,当第一个矩阵类型为int[][],而第

我有接口

public  interface Arithmetic {
   Object  sum(Object o);
}
我需要在矩阵类中指定一个求和函数

public  class Matrix implements Arithmetic{
int[][] data;
public Matrix ...
public Object sum(Object o){
 // then I have to add two matrix
}
}

请告诉我,当第一个矩阵类型为int[][],而第二个类型为Object时,如何添加两个矩阵

public  interface Arithmetic<T> {
   T sum(T o);
}
然后可以访问
o
的矩阵属性


请注意,如果将操作移动到单独的类中,您可能会发现设计清理器,例如

class MatrixArithmetic {
  static Matrix sum(Matrix a, Matrix b) {...}  // Element-wise addition of matrices.
  static Matrix sum(Matrix a, int constant) {...}  // Add constant to all elements
}
我认为这是一个更好的设计,因为:

  • 它将算术实现与数据结构的实现分离开来
  • 它允许您使用不同的
    sum
    方法<代码>实现算术排除了
    实现算术
    (仅作为示例)
  • 它允许您添加由于特定原因而需要的“新”算术方法,而无需更改
    算术
    类,从而实现算法的更好模块化

Make
算术
通用:

public  interface Arithmetic<T> {
   T sum(T o);
}
然后可以访问
o
的矩阵属性


请注意,如果将操作移动到单独的类中,您可能会发现设计清理器,例如

class MatrixArithmetic {
  static Matrix sum(Matrix a, Matrix b) {...}  // Element-wise addition of matrices.
  static Matrix sum(Matrix a, int constant) {...}  // Add constant to all elements
}
我认为这是一个更好的设计,因为:

  • 它将算术实现与数据结构的实现分离开来
  • 它允许您使用不同的
    sum
    方法<代码>实现算术排除了
    实现算术
    (仅作为示例)
  • 它允许您添加由于特定原因而需要的“新”算术方法,而无需更改
    算术
    类,从而实现算法的更好模块化