Java - Интерфейсы - PullRequest
       1

Java - Интерфейсы

3 голосов
/ 21 марта 2010

Почему интерфейсы не могут быть объявлены как статические?

Ответы [ 4 ]

6 голосов
/ 21 марта 2010

Думайте об интерфейсе как о проекте.в этом нет ничего конкретного.Просто план того, что должен реализовать класс, если придерживается (наследует) интерфейс.

Java (iirc) не имеет понятия «статические» классы как таковые, то есть «Статический» не являетсяКлючевое слово в объявлении класса, как в C #.Вместо этого статический класс - это класс, который состоит только из статических членов и методов.

Как вы, возможно, знаете, статические члены и статические методы принадлежат классу, а не экземпляру.

Поскольку интерфейс - это просто проект, а не конкретный, «статический» интерфейс не имеет смысла.

Единственное предостережение для этого - внутренние классы.

В объявлении класса вы можете определить интерфейсэто статично, но я предполагаю, что это ничего не делает.

2 голосов
/ 21 марта 2010

Если вы имеете в виду сам интерфейс: поскольку в действительности нет ничего полезного, вы могли бы иметь в виду static interface

Если вы имеете в виду интерфейс методы : поскольку в Java статические методы являются свойством класса и не могут быть переопределены или вызваны полиморфно.

2 голосов
/ 21 марта 2010

Во-первых, потому что это не имеет смысла. Чем статический интерфейс будет отличаться от нестатического интерфейса?

Во-вторых, они могут:

public class SomeClass {
    static interface StaticInterface {
    }
}
0 голосов
/ 21 марта 2010

На самом деле, я вижу некоторый смысл в интерфейсах, которые не могут быть реализованы (особенно до того, как перечисления были введены в Java 5):

public static (or better final?) interface Colors {
   public final int RED = 1;
   public final int GREEN = 2;
   ...
}

Если кто-то знает, почему эти вещи не должны быть выполнены таким образом (предположим, мы все еще в java_1.4), пожалуйста, оставьте комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...