2013-06-23 3 views
-2

В Java каждый метод в интерфейсе неявно абстрактно. Но когда хотя бы один метод в классе является абстрактным, это означает, что этот класс является абстрактным. Означает ли это, что каждый интерфейс является абстрактным классом?Java - Является ли каждый интерфейс абстрактным классом?

ответ

1

Я думаю, каким-то образом, да. Номер abstract class может использоваться как interface.

Вопрос в том, что class может только extends на другом class. Класс может implements любое количество interface s.

Так что, хотя abstract class es похожи на interface s, они очень разные в реальности.

+1

Это подробно объяснено и подробно описано в возможном вопросе о дублировании. –

+0

@LuiggiMendoza ах да, извините. Не заметил, что один - проголосовал за закрытие, как дуп. –

1

Означает ли это, что каждый интерфейс является абстрактным классом?

№ Интерфейс (на Java 7 и более ранних версиях) не может иметь никаких реализаций методов и не может определять никаких полей экземпляра. Абстрактный класс может выполнять оба. Это лишь некоторые из существенных различий.

1

Но если хотя бы один метод в классе является абстрактным.

Но это не класс, его интерфейс.

Вместо этого вы можете сказать, что это абстрактный интерфейс.

И наконец: Интерфейс является абстрактным по определению.

-2

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

+0

абстрактный интерфейс не совпадает с абстрактным классом. –