【问题标题】:Implementation of Sparse Matrix based on standard Stack generates compile errors基于标准Stack实现Sparse Matrix会产生编译错误
【发布时间】:2013-02-27 22:04:02
【问题描述】:

我正在实现基于Stack 类的稀疏矩阵,但出现以下错误:

Sparse.java:6:Sparse 不是抽象的,不会覆盖 Stack 中的抽象方法 pop()
公共类稀疏实现堆栈{

这里是有问题的代码sn-p:

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 是一个抽象类或接口,它定义了您需要在 Sparse 类中实现的 pop 方法。
  • 为什么要实施Stack
  • 这对于 (int j = 0; j
  • 如果没有具体原因,去掉Stack Implementation

标签: java sparse-matrix


【解决方案1】:

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

[1]http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html [2]When to use interfaces or abstract classes? When to use both?

【讨论】:

  • 我应该在尝试接口之前阅读此内容。谢谢你的链接。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    但是如果你的 Sparse 类是 Abstract 你不能创建对象。(但是你可以创建引用变量)。

    所以最好加上

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

    @luiges90 提到

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2021-08-18
      相关资源
      最近更新 更多