java - 不是静态java接口(interface)

标签 java interface static

在学习 Java 的过程中,我正在编写一个迷你国际象棋游戏。 我从来不懂接口(interface),但我决定尝试一下。

所以我创建了一个接口(interface)来在我的棋子上实现移动集 和我的移动解析器类。

像这样:

interface MoveSets {

    LinkedList<MoveSet> moveSets = new LinkedList<>();
    LinkedList<MoveSet> potentialMoveSets = new LinkedList<>();

    LinkedList<MoveSet> allaysMoveSet = new LinkedList<>();
    LinkedList<MoveSet> potentialAllaysMoveSets = new LinkedList<>();

    LinkedList<MoveSet> enemysMoveSets = new LinkedList<>();
    LinkedList<MoveSet> potentialEnemysMoveSets = new LinkedList<>();

}

然后,我在这里和那里做了一些修改 - 这很好,我可以将同一段代码放在不同的类上并且只更改一次,但是当我完成我的代码时move resolves 我看到了 The static field MoveSets.moveSets should be accessed in a static way notice.

所以我读了一下,那里的大多数人都说接口(interface)上的变量默认是静态的。他们还说我们不能将它们更改为非静态变量。

所以我的问题是是否有解决方法?如果不是,还有另一种方法可以将同一段代码放在不同的类中而不使变量成为静态变量吗?

我一直认为该接口(interface)是一种连接不同类中相似属性的方法。

但如果它们如此严格,我能用它们做什么(除了 提醒自己应该放置哪些方法或强制使用全局变量)?

提前致谢

或者

最佳答案

你的假设是错误的——接口(interface)不是用来连接相似的属性,而是用来连接具有共同行为的类。 为了得到你正在寻找的东西,你可以使用“getter”方法——一种返回特定值的方法。这样您就可以强制实现类创建属性(或某种替代品)。

关于java - 不是静态java接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466436/

相关文章:

java - Ubuntu 上无法上传文件

java - 如何在 Java 中对 InputStream 进行 HTTP POST

c++ - C++中没有数据成员的类

c++ - 如果私有(private)变量是静态的,它们在类外部是否可见?

c - static - 仅用于限制范围?

java - 通过多个函数返回

java - 在Java中将货币符号读取为字符串

c# - 接口(interface) "not marked with serializable attribute"异常

java - 如何实现相互矛盾的接口(interface)

Java 静态变量意外持续存在