关于java:基于标准Stack的Sparse Matrix的实现会产生编译错误

Implementation of Sparse Matrix based on standard Stack generates compile errors

我正在实现一个基于Stack类的稀疏矩阵,得到以下错误:

Sparse.java:6: Sparse is not abstract and does not override abstract method pop() in Stack
public class Sparse implements Stack {

下面是有问题的代码段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Sparse implements Stack {

    static int matrix[][] = new int[6][6];

    public static int[][] Random() {
        Random rand = new Random(seed);
        rand.nextInt(100);
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < array[0].length; j++) {
                matrix[i][j] = rand.nextInt(100);
            }
            return matrix;
        }
    }
}

任何帮助都将不胜感激。谢谢您。


表示接口Stack有方法pop()。您必须实现方法pop(),否则它将无法编译。

如果必须快速测试代码并稍后实现该方法,则可能需要

1
2
3
public int pop() { // Refer to your Stack interface for signature - they must match.
    throw new UnsupportedOperationException("not implemented");
}


继承抽象类的类必须重写其中的每个方法。(必须给出定义)。如果不是,甚至子类(稀疏)也应该是抽象的。

但如果类稀疏是抽象的,则无法创建对象。(但可以创建引用变量)。

所以最好加上

1
2
3
public int pop() { // Refer to your Stack class for signature - they must match.
    throw new UnsupportedOperationException("not implemented");
}

如@luiges90所述


似乎您对抽象类和接口不太了解。请浏览以下链接。会帮助你的。你可以随时通过谷歌获取更多信息。-)

[1]http://docs.oracle.com/javase/tutorial/java/iandi/abstract.html(英文)[2]何时使用接口或抽象类?什么时候两者都用?