powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / В чем разница между абстрактным классом и интерфейсом?
18 сообщений из 43, страница 2 из 2
В чем разница между абстрактным классом и интерфейсом?
    #37707259
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только не говорите новичку что Classloader видит интерфейсы и классы как.... ОБЪЕКТЫ.

Ато у него мозг совсем перегреется.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707666
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraПри наличии множественного наследования интерфейс как языковая сущность не нужен. Бритвой отрезает.ИМХО причина и следствие поменялись местами в высказывании этом

Наличие интерфейсов это следствие отказа от множественного наследования. Множественное наследование порождает большие возможности усложнения на пустом месте, потому от них отказались и ввели интерфейсы. Интерфейсы правда тоже не идеал - появились traits ;)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37707716
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37708387
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
riskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов.
это опупительно важно
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37708463
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
riskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов.далеко не факт.

Если обследовать класс через рефлекшен API, то все его интерфейсы представлены в виде объектов класса java.lang.Classjavadocpublic Class<?>[] getInterfaces()
Determines the interfaces implemented by the class or interface represented by this object.

также в некоторых случаях декомпилятор реверсил интерфейсы в виде абстрактных классов.

потому ИМХО на уровне вируальной машины абстрактные классы без реализации методов тождественны интерфейсам.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37709286
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 он будет представлен интерфейсом.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37709288
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashariskСтранно, почему никто не упомянул о том, что интерфейс с абстрактный класс наверняка имеют разную структуру, хотя бы из-за той же таблицы виртуальных методов.
это опупительно важно
Ну тогда надо было посылать сразу в гугл и не рассусоливать то что можно нагуглить за 2 минуты....
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37709375
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
riskНу тогда надо было посылать сразу в гугл и не рассусоливать то что можно нагуглить за 2 минуты....
это всегда по настроению
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37712016
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37712097
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabПрально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации.
ну, в Java ещё впихнули туда набор констант.
Т.е. это уже вроде как реализация-поведение. Хотя спорно.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37712654
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123jabПрально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации.
ну, в Java ещё впихнули туда набор констант.
Т.е. это уже вроде как реализация-поведение. Хотя спорно.константы в интерфейсе всегда final. By design. Так что это не поведение - это чистые константы.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37712844
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA,
понятно, что это спорно - считать ли поведением, наделение объекта набором констант.
Для меня любые "величины" - поведение :)
afaik я только в Java это встретил. Могу ошибаться.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37713000
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123VoDA,
понятно, что это спорно - считать ли поведением, наделение объекта набором констант.
Для меня любые "величины" - поведение :)
afaik я только в Java это встретил. Могу ошибаться.В Scala вроде сохранено подобное поведение. Kotlin и Ceylon совместимы с java, значит и константы в интерфейсах должны поддерживать.

А вот в C# запрещено помещать константы в интерфейсы.

ИМХО это дело вкуса. Интерфейс это описание способа взаимодействия с подсистемой или либой.
Код: java
1.
2.
3.
interface Robot {
   public void turn(int side, int measure, int amount);
}

Как можно узнать какие константы нужно подставить в side и measure чтобы система выполнила поворот налево в 5 градусов?

Код: java
1.
2.
3.
4.
5.
6.
interface RobotConstants {
   int RIGHT = 1;
   int LEFT = 2;
   int DEGREES = 3;
   int RADIANS = 4;
}



И вот уже внешняя система может определиться и выполнить:
Код: java
1.
turn(RIGHT, DEGREES, 5);



Потому использовать интерфейсы как хранилище для констант взаимодействия с подсистемой вполне логично. В примере можно объединить Robot и RobotConstraints - возможно это также упростит использование такого кода.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37713032
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA,
у меня посыл другой.... Как у ФП.
Т.е. интерфейс это проводник-труба, процесс-меняющий данные.
В ФП - нет состояния. У интерфейса тоже нет.
Следовательно, повернуть на 5 град. неважно от чего.
Вот такие мысли 6-м чувством :)
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37713094
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123VoDA,
у меня посыл другой.... Как у ФП.
Т.е. интерфейс это проводник-труба, процесс-меняющий данные.
В ФП - нет состояния. У интерфейса тоже нет.
Следовательно, повернуть на 5 град. неважно от чего.
Вот такие мысли 6-м чувством :)Состояние - это то, что может измениться. Интерфейс не меняется, потому он как и функция в ФП не обладает состоянием ;)

Интерфейс как и функция может вызывать изменения где то еще - интерфейс в объекте, к которому этот "проводник-труба" подключен, а функция - выдает изменения в виде возвращаемого объекта.
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37713122
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Petro123!

> Т.е. интерфейс это проводник-труба, процесс-меняющий данные.
> В ФП - нет состояния. У интерфейса тоже нет.

Ну будет нужно писать getRight() вместо RIGHT - что поменяется?
Кроме того, что контрактом константы является её значение, а функции-
обещание в комментарии?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37713139
mvn3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) абстрактный класс может содеражать реализацию методов, интерфейс - нет.
2) можно наледовать множество интерфейсов но только 1-н класс
3) как и говорили интерфейсы работают медленнее

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

есть нужно обеспечить просто единый интерфейс работы всех классов (у всех одинаковые имена но разная реализация, "полиморфизм интерфейса") но каждый имеет собственную реализацию - это интерфейс
...
Рейтинг: 0 / 0
В чем разница между абстрактным классом и интерфейсом?
    #37714262
valiantsin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabПрально тут писали, что интерфейс это по сути контракт. Вообще интерфейс это более чистая реалзация абстракции. В нем могут быть только описания методов, но никогда не будет их реализации.
Ответ спорный - можно протроллить тем, что в теле интерфейса возможно поместить реализацию объявленного абстрактного метода через вложенный класс собственно реализующий этот интерфейс.
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / В чем разница между абстрактным классом и интерфейсом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]