powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
23 сообщений из 123, страница 5 из 5
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39032675
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULERДобрый день.
В принципе с ООП знаком. Понимаю что есть наследование, инкапсуляция и полиморфизм.
Столкнулся с такой новой для меня штукой как интерфейсы . Нарыл кучу примеров и пояснений, но до сих пор в голове не могу сформировать устойчивого и ясного понимания.

Понимаю что интерфейс содержит в себе как бы декларацию методов, а реализация выполняется внутри методов классов "вызывающих" данный интерфейс. Причем внутри класса (использующий интерфейс) через @Override происходит переопределение метода с его реализацией (попросту пишется собственно код метода).

Вопрос вот в чем: что мне мешает вообще не использовать интерфейсы? Ведь внешне, в плане вызова метода у объекта класса ничего не меняется?! Что мне мешает не использовать @Override а просто сделать метод внутри класса и использовать его?

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

просто делай так всегда - и не задавай вопросов ;)
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39032691
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
Уверен что ему когда нибудь уже понадобится базовый класс? ))))
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39032745
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiverА вообще, хороший пример есть на сайте оракла, по-моему:
он хороший именно в своей области. Не буду говорить узкой)), но на пальцах:
- интрефейс это контракт между разрозненными группами или фирмами
- т.к. они разрознены _административно_, а не концептуально или по БЛ, то необходимы заглушки-контракты чтобы удобнее писать.
Но, если архитектор системы один, то ему не с кем договариваться. Он пойдёт от ООП-UML.
При желании, абстрактный базовый класс может выполнить ту же роль контракта. Их даже передают бывает для компиляции программ, чтобы исходники (платные) не передавать)).
Есть SOAP, тоже ничего себе контракт на другом уровне.
....
Ну а в принципе, пример понятен. Нужно сделать одно поведение для разрозненных объектов и упростить жизнь менеджерам. Главное не натягивать данный пример на всё подряд. Это не Мода-осень 2015. imho
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39032748
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Давай так - просто возьми себе за практику использовать интерфейсы везде .
я вижу ты читал ссылку
http://www.quizful.net/post/razlichie_v_primenenii_interfeysov_i_abstraktnih_klassov
но ничего там не понял.
- где будем размещать поле
Points - точки фигуры?
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39032839
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Давай так - просто возьми себе за практику использовать интерфейсы везде.

О, работники сурового интерпрайза подтянулись :)

В ООП любой класс должен выполнять какую-то функцию. В т.ч. интерфейс.
Класс/интерфейс- абстракция. И он должен не только иметь ОДНУ ответственность, но и ИМЕТЬ ответственность.
А подход "всегда делай интерфейс" приводит к созданию кучи интерфейсов, которые не имеют никакой ответственности вообще.

При разработке кода "для себя" (т.е. такого, который используется строго внутри проекта) надо следовать принципам "simple code" - т.е. делай как есть, потом отрефакторишь, чтобы было хорошо. Не нужен интерфейс- не делай. Нужен будет- выделишь, благо дело современные IDE это делают сами. Не нужен- проще будет код понять.

Создавать же библиотеки "для всех" (пусть даже это в пределах кампании) всё одно не подпустят пока- там да, там надо хорош продумывать всё, чтобы не родить уродцев типа java.awt.Point.

Atum1просто делай так всегда - и не задавай вопросов ;)

Нет, надо просто понять базовые принципы ООП, тогда SOLID и т.п. будет видится тривиальщиной (хотя нет, буковка D там не следует из принципов ООП).
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033118
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1Давай так - просто возьми себе за практику использовать интерфейсы везде .
я вижу ты читал ссылку
http://www.quizful.net/post/razlichie_v_primenenii_interfeysov_i_abstraktnih_klassov
но ничего там не понял.
- где будем размещать поле
Points - точки фигуры?

List<Points> getPoints() - в интерфейсе .

сами точки в абстрактном классе :)
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033125
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсами точки в абстрактном классе :)
=== ну вот видишь))))) LOL

авторList<Points> getPoints() - в интерфейсе
=== зачем?
1. Оверхед
2. Точки приватные. Их никто пока не открывал.
Т.к. возможно надо будет перекрыть в наследниках.
Удачи!
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033228
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123авторсами точки в абстрактном классе :)
=== ну вот видишь))))) LOL

авторList<Points> getPoints() - в интерфейсе
=== зачем?
1. Оверхед
2. Точки приватные. Их никто пока не открывал.
Т.к. возможно надо будет перекрыть в наследниках.
Удачи
!

прям контратака тракслера :)

ну придется на каком то этапе для того чтобы скрыть интерфейсы
отказаться от тупого линейного наследования и перейти к Композиции .

«композиция всегда лучше наследования» (с)
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033246
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1прям контратака тракслера :)
=== ))) ну дак у меня разряд).
ну придется на каком то этапе для того чтобы скрыть интерфейсы
отказаться от тупого линейного наследования и перейти к Композиции .
«композиция всегда лучше наследования» (с)
===== это я уже пас. Есть три кита ООП. Пытаться сказать какой из 3-х тупой, а какой лучше второго без меня))

не будем додумывать. Главное начали от печки - от abstract class. А interface по надобности.
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033258
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123не будем додумывать. Главное начали от печки - от abstract class. А interface по надобности.

ну так есть же еще Миксины и трейты че мы только на abstract и interface застряли :)?
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033268
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1, ну дак много есть интересного. Вон доллар за окном дорожает).
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033274
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1, ну дак много есть интересного. Вон доллар за окном дорожает).

ОФФ

так это хорошо :)

"Путин считает что обесценивание рубля нам выгодно ..." (с) - это не доллар растет , а рубль укрепляется :)
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033282
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
))
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033458
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Давай так - просто возьми себе за практику использовать интерфейсы везде .
Начинай проектирование любого класса с интерфейса ...
если тебе будет нужен в процессе абстрактный класс вводи смело , но от интерфейсов не надо отказаться ... везде в первую очередь создавай интерфейс ... и потом уже по необходимости абстрактный класс , который будет имплементировать этот интерфейс ...

просто делай так всегда - и не задавай вопросов ;)
Так можно родить новый антипаттерн. Под названьем "засилие интерфейсов". Или Interfaces dominance.
И следующие лет 10 бороться с ним вводя новые сущности типа "фасадных" интерфейсов.
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033611
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТак можно родить новый антипаттерн. Под названьем "засилие интерфейсов". Или Interfaces dominance.
И следующие лет 10 бороться с ним вводя новые сущности типа "фасадных" интерфейсов.

У меня такое подозрение, что интерфейсы в Java ввели, потому что не было header-файлов, как в C/C++.
Поэтому писать для каждого класса интерфейс, это стиль написания программ на C/C++.
<:o)
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033639
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulmaytonТак можно родить новый антипаттерн. Под названьем "засилие интерфейсов". Или Interfaces dominance.
И следующие лет 10 бороться с ним вводя новые сущности типа "фасадных" интерфейсов.

У меня такое подозрение, что интерфейсы в Java ввели, потому что не было header-файлов, как в C/C++.


Чито?
header-файл в C это костыль в отсутствии модульности.
interface в java - костыль в отсутствии множественного наследования.
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033652
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulmaytonТак можно родить новый антипаттерн. Под названьем "засилие интерфейсов". Или Interfaces dominance.
И следующие лет 10 бороться с ним вводя новые сущности типа "фасадных" интерфейсов.

У меня такое подозрение, что интерфейсы в Java ввели, потому что не было header-файлов, как в C/C++.
Поэтому писать для каждого класса интерфейс, это стиль написания программ на C/C++.
<:o)
Ошибочка вышла. Вввели потому что ООП а не аналогии с С++.
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033660
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОшибочка вышла. Вввели потому что ООП а не аналогии с С++.

Если меня память не подводит, то в SmallTalk никаких интерфейсов не было.
Да и в самой парадигме ООП нет понятие интерфейсов.

А вот в C++ с которых "слизывали" Java.
"Java это C++ только лучше"
Были заголовки, которые несли смысловую нагрузку такую же как сейчас несут интерфейсы в Java.

<:o)
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033664
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulmaytonОшибочка вышла. Вввели потому что ООП а не аналогии с С++.

Если меня память не подводит, то в SmallTalk никаких интерфейсов не было.
Да и в самой парадигме ООП нет понятие интерфейсов.

А вот в C++ с которых "слизывали" Java.
"Java это C++ только лучше"
Были заголовки, которые несли смысловую нагрузку такую же как сейчас несут интерфейсы в Java.

<:o)
Это передёргивание правды. На Java оказали влияние около 10 языков и парадигм. Не стоит
выпячивать или натягивать С++.
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033695
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто передёргивание правды. На Java оказали влияние около 10 языков и парадигм. Не стоит
выпячивать или натягивать С++.

Про header-interface это человек либо не знает C/C++, либо не знает java.

Но справедливости ради- у меня чёткое ощущение, что Гослинг действительно ничего, кроме С++, не знал.
Потому что он перетащил те баги С++, которые были связаны с бинарной совместимостью С и С++, в java, при том, что был eiffel, который (при всей его неуклюжести) содержал все идеи ООП (кроме метаклассов) в законченном виде (собственно все последующие новшества- только из ФП).
Для доказательства достаточно того факта, то для переменной доступ на чтение и запись совпадает...
Ну и прочее - return, main, "область видимости пакет"- бр...
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033721
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Tomininterface в java - костыль в отсутствии множественного наследования.
+1! люто плюсую! все остальное можно сделать абстрактным классом.
для примера:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    interface IValue {
        Object getValue();
    }
    interface IName {
        String getName();
    }
    class Procedure implements IName {
        @Override
        public String getName() {
            return "setProperty";
        }
    }
    class Function implements IName, IValue {
        @Override
        public String getName() {
            return "getProperty";
        }
        @Override
        public Object getValue() {
            return null;
        }
    }



на абстрактных функцию, переменную и т.д. не реализуешь
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033735
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
я те заголовки никогда не любил...по практичности.
Уж слишком они были объёмные и где то там лежали....)) отдельно от кода.
Потом на Delphi оооочень понравилась компактность кода )))
...
Рейтинг: 0 / 0
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
    #39033777
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasaна абстрактных функцию, переменную и т.д. не реализуешь
здесь больше не о к оде компилятора рассуждаем. А о _прикладном_ коде. Т.е. там где БЛ и ближе к пониманию простыми программистами.
...
Рейтинг: 0 / 0
23 сообщений из 123, страница 5 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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