Почему не все классы Java имеют интерфейсы? - PullRequest
3 голосов
/ 07 февраля 2010

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

Ответы [ 6 ]

10 голосов
/ 07 февраля 2010

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

2 голосов
/ 07 февраля 2010

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

1 голос
/ 07 февраля 2010

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

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

1 голос
/ 07 февраля 2010

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

0 голосов
/ 07 февраля 2010

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

0 голосов
/ 07 февраля 2010

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

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