Последние комментарии

Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.


Михаил Фленов Зарегистрированный пользователь

Какой у тебя браузер, у меня ничего не сохраняется.

Это плохо задавать вопросы, на которые можно дать однозначиный ответ, потому что это не дает понять, как мыслит человек, которому ты задаешь вопрос, как он понимает предмет. В данном случае нужно назвать как можно больше правильных свойств, которые показывают отличие. Я привел в заметке вариант правильного ответа. Вот твои сообщения меня вводят больше в заблуждение, чем дают какую-то информацию.

+ Единственное, что ты сказал четко, это "Или в интерфейсах нельзя создавать приватные методы". Да, это правильно и без вопросов.

- "А вот интерфейсы - не механизм наследования" - как так, если интерфейсы можно наследовать, что ты имеешь ввиду?

- "Потому что интерфейс это чисто механизм полиморфизма" - а есть чистые и грязные полиморфизмы? Классы не обладают полиморфизмом? Интрфейсы не обладают полиморфизмом? Какое отличие ты хотел тут показать?

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

ПОВТОРЮСЬ - не нужно отвечать на вопросы, которые я задал в этом комментарии, это просто пример того, куда ведет вопрос и какой выстраивается диалог с человеком, с которым я провожу интервью.


Владимир_

Все думают по разному и у всех разный опыт. Да, я понимаю, что и на мой вопрос можно навыдумывать ответов. Я лишь за то, чтобы конкритизировать то, на что конкретно вы хотели бы получить ответ.
А по поводу новой фишки, реализация по умолчанию в интерфейсах не заменяет абстрактные классы. Можете спрашивать у собеседников - почему


Владимир_

Да, после ввода все убирается. Я обновил страницу, чтоб написать еще комент, и текст остался в полях ввода. Так, наверное, и задумано. Просто не очень удобно


Владимир_

Классы - да. А вот интерфейсы - не механизм наследования. Этим и отличается. А вот вопрос мне не нравится, потому что это вопрос из категории: "угадай что хочет услышать человек его задавший". Хорошо было бы задавать  вопросы, на которые можно дать однозначный ответ.
А как можно ответить на вопрос чем отличается? Ну например ключевым словом. Вы это хотели услышать? Или в интерфейсах нельзя создавать приватные методы. Эти ответы говорят о понимании, что такое интерфейс или абстрактный класс?


Михаил Фленов Зарегистрированный пользователь

2Владимир_

Я не знаю, что у тебя не очистилось, потому что все поле для ввода комментария должно убираться и вместо него появлятся твой комментарий. Какой браузер используешь? Может где-то JS ошибка.


Михаил Фленов Зарегистрированный пользователь

2Евгений рнд

Ой горят на этом вопросе, потому что не понимают разницу. И раньше достаточным ответом было: Интерфейс - это чистый declaration - ты только объявляешь протокол, как что-то должно работать. Абстрактный класс - это класс с реализаций по умолчанию, хотя некоторые могут использовать это и в качестве протокола (не является хорошим тоном, но не запрещается). Когда появится в интерфейсах реализация, то мое утверждение уже становится условностью. Да, это то, для чего они создавалиссь, но не и плоскогубцами можно забивать гвозди.

2Владимир_

Вопрос вполне корректен и он как раз на понимание, когда и что использовать. А классы разве не механизм полиморфизма в чистом виде? Тем более абстрактные. Ты же сам говоришь, что абстрактный класс нужен больше для насследования и может выполнять роль в полеморфизме. Так где же чистая разница?


Владимир_

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


Владимир_

Никаго множественного наследования нет вообще


Владимир_

Ну сам по себе вопрос: "чем отличаются абстракные классы и интерфейсы?" - некоректен. Лучше бы узнать, в каких бы ситуациях было бы полезно применить абстрактный класс, а в каких интерфейс. И тут ничего не изменилось. Потому что интерфейс это чисто механизм полиморфизма и, с добавлением методов по умолчанию, ничего не изменилось. Создавать члены класса внутри интерфейса порежнему нельзя. Хотя можно, конечно, свойства, но те должны быть открытыми, что уродывало бы интерфейс, при неправильном использовании.
Абстрактный класс нужен больше для наследования, хоть и может выполнять роль в полиморфизме. То есть абстракный класс больше нужен, чтобы не повторяться


Покемон

В Java 8 это уже давно есть. Это сделано для того, чтобы в множестве реализующих классов, не определять пустые методы там, где они не нужны. А выкидывать исключение в методе поумолчанию например. Врятли он годится для чего-то большего.


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне