Возможный дубликат:
Что значит "программировать интерфейс" ?
Интерфейс против абстрактного класса (общий OO)
Я новичок в изучении JAVA, и теперь я запутался в интерфейсе. Я искал и читал много материалов, но до сих пор не ясно.
Когда я пытаюсь найти некоторую информацию об интерфейсе, я вижу, что многие люди говорили о взаимосвязи между интерфейсом и абстрактным классом. Но я даже не знаю, почему они противопоставляют эти два. Поскольку я считаю, что абстрактный класс используется, чтобы рассказать другим людям, вы не можете создать объект этого абстрактного класса, и если хотите, вы должны изменить абстрактный класс. Это что-то о наследовании, верно?
Но я не знаю смысла интерфейса. Существует interface a
, и если a class B
собирается реализовать интерфейс a, он должен использовать зарезервированное слово class B implements a
, а затем завершить все методы, требуемые интерфейсом. Но мой вопрос заключается в том, что если класс B должен выполнить все методы сам по себе, каково значение интерфейса? Думаю, нам это не нужно.
Я этого не понимаю. Я читал множество предложений вроде: "интерфейс может отражать основную мысль объектно-ориентированного языка", "интерфейс может помочь сделать программу проще" и т.д. Но я не могу понять смысл.
Итак, может ли кто-нибудь показать мне несколько примеров, чтобы понять интерфейс? Или вы можете сказать мне полезные ссылки или книги, которые четко описывают интерфейс. Я действительно надеюсь понять это. СПАСИБО!