2010-02-07 3 views
3

У меня этот вопрос для домашней работы, и я не уверен, как ответить на него. Не могли бы вы мне помочь?Почему не все классы Java имеют интерфейсы?

+0

Пожалуйста, размещайте больше контекста. Если это все, что дал вам ваш профессор, это довольно плохо поставленный вопрос. – dsimcha

+0

Нет, это не вопрос, который у вас есть. –

+0

Это ТОЧНО вопрос, который я получил, НЕТ контекста, и я не знаю, что сказать. Предыдущий вопрос: «Укажите важность интерфейса Java». – ashamadelion

ответ

10

Для любого вопроса «почему бы и нет ...», хорошо подумать «что произойдет, если ...». В этом случае: что произойдет, если для каждого класса Java необходим интерфейс? Как это изменит существующие API? Как это изменит ситуацию для людей, создающих новые классы? Любые проблемы, возникающие при ответе на эти другие вопросы, могут быть ответом на ваш первоначальный вопрос.

+1

Спасибо, что были более конструктивными, чем другие ответы. Это было гораздо более полезно. – ashamadelion

0

Это не имеет никакого смысла. Каким будет интерфейс для String или Date?

+1

Для String charAt(), indexOf() и т. Д. - все, чтобы я мог создать свою собственную (скажем) ASCII-строку - String является окончательной, поэтому вы действительно искалечены в том, что вы можете с ней сделать. Для даты, ну, 95% этого класса официально устарели в эти дни, что говорит мне о том, что небольшая гибкость реализации могла бы быть приятной. :-) – Ken

2

Возможно, вопрос направлен на разнице между общей концепцией от интерфейса к классу или модулем и языковой конструктом Java интерфейса (в том смысле, что все классы действительно есть интерфейсы, но дон» t реализовать интерфейс).

1

Мы здесь не для того, чтобы делать домашнее задание. Но если вы ответили на предыдущий вопрос - что касается интерфейсов, вы можете легко ответить на этот вопрос.

1

Ответьте учителю, что это потому, что для каждого класса нет никакого интерфейса. Если он спрашивает вас «почему?», Ответьте ему: представьте, что бы это было, если бы каждый человек на земле должен был обладать навыками разработки программного обеспечения, силы, чтобы подняться на горные вершины, tehnique, чтобы управлять лыжами, имеют солидные мнения в политических дискуссий и уметь рисовать как Пикассо ... аах .. :) не говоря уже о том, чтобы говорить КАЖДОЙ ЯЗЫК НА ЗЕМЛЕ.

Бьюсь об заклад, будут люди, которые будут спорить со мной о том, что не так в каждом человеке на земле, имеющем все эти способности, но это сделает наши ответы вне темы. Так что лучше не спорить. По крайней мере, не здесь :)

+0

Мне понравился этот ответ, спасибо. – ashamadelion

+0

«Так что лучше не спорить». Я не согласен :-) –

0

Другой способ понять этот вопрос - посмотреть на случаи/ситуации, когда используются интерфейсы. И спросите себя, какие последствия потребует интерфейс? Рассмотрим пример «Создание потоков». Вы можете создать его, расширив класс Thread или внедряя интерфейс Runnable. Интерфейсы в этом случае решают проблему множественного наследования. Какие проблемы будет реализовывать интерфейс «всегда» для решения/создания?

Смежные вопросы