|
|
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Только не говорите новичку что Classloader видит интерфейсы и классы как.... ОБЪЕКТЫ. Ато у него мозг совсем перегреется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 18:18:22 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraПри наличии множественного наследования интерфейс как языковая сущность не нужен. Бритвой отрезает.ИМХО причина и следствие поменялись местами в высказывании этом Наличие интерфейсов это следствие отказа от множественного наследования. Множественное наследование порождает большие возможности усложнения на пустом месте, потому от них отказались и ввели интерфейсы. Интерфейсы правда тоже не идеал - появились traits ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 23:23:21 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Странно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 00:19:49 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
riskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов. это опупительно важно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 13:41:53 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
riskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов.далеко не факт. Если обследовать класс через рефлекшен API, то все его интерфейсы представлены в виде объектов класса java.lang.Classjavadocpublic Class<?>[] getInterfaces() Determines the interfaces implemented by the class or interface represented by this object. также в некоторых случаях декомпилятор реверсил интерфейсы в виде абстрактных классов. потому ИМХО на уровне вируальной машины абстрактные классы без реализации методов тождественны интерфейсам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 14:20:21 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
VoDAriskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов.далеко не факт. Если обследовать класс через рефлекшен API, то все его интерфейсы представлены в виде объектов класса java.lang.Classjavadocpublic Class<?>[] getInterfaces() Determines the interfaces implemented by the class or interface represented by this object. также в некоторых случаях декомпилятор реверсил интерфейсы в виде абстрактных классов. потому ИМХО на уровне вируальной машины абстрактные классы без реализации методов тождественны интерфейсам. Декомпилятор какой ? От Oracle|Sun или сторонний? скорее всего сторонний, потому он явно не может знать всех деталей реализации JVM и компилятора По поводу интерфейсов через рефлексию - а что там собственно говоря могли вернуть? В яве есть только два варианта массив value типов или инстансы классов... По поводу абстрактных классов без реализации - согласен с вашим мнением. Скорее всего там идет подстановка - даже если вы объявили асбтрактный класс без реализаций - то внутри JVM он будет представлен интерфейсом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 22:00:43 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
chpashariskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов. это опупительно важно Ну тогда надо было посылать сразу в гугл и не рассусоливать то что можно нагуглить за 2 минуты.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 22:01:48 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
riskНу тогда надо было посылать сразу в гугл и не рассусоливать то что можно нагуглить за 2 минуты.... это всегда по настроению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 23:42:51 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Прально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:35:16 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
jabПрально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации. ну, в Java ещё впихнули туда набор констант. Т.е. это уже вроде как реализация-поведение. Хотя спорно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:11:08 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Petro123jabПрально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации. ну, в Java ещё впихнули туда набор констант. Т.е. это уже вроде как реализация-поведение. Хотя спорно.константы в интерфейсе всегда final. By design. Так что это не поведение - это чистые константы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 23:54:53 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
VoDA, понятно, что это спорно - считать ли поведением, наделение объекта набором констант. Для меня любые "величины" - поведение :) afaik я только в Java это встретил. Могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 09:44:51 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Petro123VoDA, понятно, что это спорно - считать ли поведением, наделение объекта набором констант. Для меня любые "величины" - поведение :) afaik я только в Java это встретил. Могу ошибаться.В Scala вроде сохранено подобное поведение. Kotlin и Ceylon совместимы с java, значит и константы в интерфейсах должны поддерживать. А вот в C# запрещено помещать константы в интерфейсы. ИМХО это дело вкуса. Интерфейс это описание способа взаимодействия с подсистемой или либой. Код: java 1. 2. 3. Как можно узнать какие константы нужно подставить в side и measure чтобы система выполнила поворот налево в 5 градусов? Код: java 1. 2. 3. 4. 5. 6. И вот уже внешняя система может определиться и выполнить: Код: java 1. Потому использовать интерфейсы как хранилище для констант взаимодействия с подсистемой вполне логично. В примере можно объединить Robot и RobotConstraints - возможно это также упростит использование такого кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 11:19:18 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
VoDA, у меня посыл другой.... Как у ФП. Т.е. интерфейс это проводник-труба, процесс-меняющий данные. В ФП - нет состояния. У интерфейса тоже нет. Следовательно, повернуть на 5 град. неважно от чего. Вот такие мысли 6-м чувством :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 11:31:21 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Petro123VoDA, у меня посыл другой.... Как у ФП. Т.е. интерфейс это проводник-труба, процесс-меняющий данные. В ФП - нет состояния. У интерфейса тоже нет. Следовательно, повернуть на 5 град. неважно от чего. Вот такие мысли 6-м чувством :)Состояние - это то, что может измениться. Интерфейс не меняется, потому он как и функция в ФП не обладает состоянием ;) Интерфейс как и функция может вызывать изменения где то еще - интерфейс в объекте, к которому этот "проводник-труба" подключен, а функция - выдает изменения в виде возвращаемого объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 11:49:58 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
Добрый день, Petro123! > Т.е. интерфейс это проводник-труба, процесс-меняющий данные. > В ФП - нет состояния. У интерфейса тоже нет. Ну будет нужно писать getRight() вместо RIGHT - что поменяется? Кроме того, что контрактом константы является её значение, а функции- обещание в комментарии? -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 11:59:17 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
1) абстрактный класс может содеражать реализацию методов, интерфейс - нет. 2) можно наледовать множество интерфейсов но только 1-н класс 3) как и говорили интерфейсы работают медленнее вобщем мораль сей басни такова: если у тебя есть класс который не является самодостаточной единицей, и каждый объект требует своей собственной реализации\ дополнения, но между ними есть какой-то общий функционал тогда это абстрактный класс. есть нужно обеспечить просто единый интерфейс работы всех классов (у всех одинаковые имена но разная реализация, "полиморфизм интерфейса") но каждый имеет собственную реализацию - это интерфейс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 12:06:40 |
|
||
|
В чем разница между абстрактным классом и интерфейсом?
|
|||
|---|---|---|---|
|
#18+
jabПрально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации. Ответ спорный - можно протроллить тем, что в теле интерфейса возможно поместить реализацию объявленного абстрактного метода через вложенный класс собственно реализующий этот интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 19:06:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37707716&tid=2132271]: |
0ms |
get settings: |
14ms |
get forum list: |
25ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
63ms |
get topic data: |
22ms |
get forum data: |
6ms |
get page messages: |
110ms |
get tp. blocked users: |
3ms |
| others: | 359ms |
| total: | 614ms |

| 0 / 0 |
