|
|
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Почему их разделили? Может кто-нибудь по простому объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 19:39:33 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Класс может расширять только один класс, но может реализовывать несколько интерфейсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 19:48:16 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Beduin , Цель интерфейса - легко и лаконично объяснить пользователю, как с ним работать. Цель абстрактного класса - хранить в себе логику, общую для всех его наследников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 19:55:56 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
По-простому, есть важное отличие. Класс, наследованный от абстрактного, уже будет привязан к этой иерархии классов . В случае с интерфейсами такого нет, поэтому дочерний класс можно приводить к любому расширяемому им интерфейсу. Это обеспечивает большую гибкость в тех случаях, когда делается рефакторинг всего или части проекта. Т.е. будет позволять что-то добавить или изменить в коде с минимальными действиями. Более подробно и с примерами читай в книгах, к примеру, "Философия Java". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 20:36:03 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
BeduinПочему их разделили? Может кто-нибудь по простому объяснить. Из за проблем возникающих при множественном наследовании например ромбовидное наследование (англ. diamond inheritance) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 20:48:50 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
в 8 яве будет Virtual Extension Methods ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 11:04:56 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimirв 8 яве будет Virtual Extension Methods А ещё дефолтные методы в интерфейсых. Это намного ближе к теме. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 11:06:30 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPenkov Vladimirв 8 яве будет Virtual Extension Methods А ещё дефолтные методы в интерфейсых. Это намного ближе к теме. :) это оно и есть: http://www.infoq.com/articles/java-8-vs-scala The Java 8 specification defines a draft for virtual extension methods. Virtual extension methods will add default implementations to new and/or existing methods of existing interfaces. Why is that? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 11:10:20 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimirэто оно и есть: Хм. И правда. Я давно читал уже. Видать спека тогда не устаканилась. Но там было более свободное решение, позволяющее добавлять методы в существующие классы. Т.е. фактически описывать метод вне класса. А в текущей реализации такая возможность доступна только путем модификации интерфейсов, реализуемых классом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 11:15:32 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
BeduinПочему их разделили? на том этапе эволюции стояла задача избежать проблему ромбовидного наследования. Придумали-сделали. Попользовались, оказалось что вцелом вышло хорошо, но не идеал. За это время придумали нечто получше - как в скале. Но я уверен - время покажет что и в скале где-то налажали. Обязательно со временем найдется что-то, что портит жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 00:32:47 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Лол, в Java изобрели mixinы. Ну офигеть теперь, заживем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 12:16:27 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
ЛагманЛол, в Java изобрели mixinы. Ну офигеть теперь, заживем. mixin позволяет налету добавить функционал объекту. тут это все compile time. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 12:42:59 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Интерфейсы не могут содержать переменных (константы могут), но класс может реализовать их много (или ни одного). До джавы 8 методы в интерфейсах не могли содержать тел (реализации), теперь могут. Теперь по сути это trait'ы. До джавы 8 интерфейсы не могли содержать статических методов (теперь тоже могут!). ЛагманЛол, в Java изобрели mixinы. Ну офигеть теперь, заживем. Mixin'ов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 13:50:00 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimir, авторWhen a class includes a mixin, the class implements the interface and includes, rather than inherits, all the mixin's attributes (fields, properties) and methods. They become part of the class during compilation . avp.mk, ссылку на Ваше "понимание" mixina. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 14:02:38 |
|
||
|
Разница между интерфейсом и абстрактным классом
|
|||
|---|---|---|---|
|
#18+
Лагманavp.mk, ссылку на Ваше "понимание" mixina. Моё """""понимание""""" основано на этой статье: http://rsdn.ru/article/scala/scala.xml#EDNAC Код: sql 1. 2. При такой первой строке кода компилятор Scala создаст синтетический тип, который расширяет класс Dog и trait ExclamatoryGreeter, и создаст его экземпляр (синтетический тип генерируется автоматически компилятором, а не пишется вручную программистом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 14:14:50 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=204&tid=2128362]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 369ms |

| 0 / 0 |
