powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Множественное наследование
25 сообщений из 127, страница 4 из 6
Множественное наследование
    #34072186
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже согласен с Партизаном. Добавить нечего.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072262
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ LINUXER Kachalovможно унаследовать несколько методов с одинаковой сигнатурой и разной реализацией - возникает коллизия.
В интерфейсах также - заимплементишь два интерфейса с одноимёнными полями - всё слетит.А какие у интерфейсов поля?
Я имел в виду свойства. На самом деле с ними всё как надо.(ошибся
...
Рейтинг: 0 / 0
Множественное наследование
    #34072276
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ Partisan Mправильный ответ уже дан - множественное наследование не нужно. А неправильных можно давать сколько угодно. Никакая это не священная война, но достают некоторые с претензией "Почему Java это не C++". Ну и пользуйтесь своим С++ и не приставайте с глупостями. И не надо про "высокую квалификацию" программистов на С++". Я сам долго программировал на C++ (ввиду отсутствия выбора), и с тех пор как перешёл на Java, моя квалификация повысилась (поизучал новые технологии, доступные программистам на Java).
Кстати, по моим наблюдениям, большинство программирующих на С++ - дураки, невежды, демократы и психи. Чтобы не быть голословным - один на прямо рабочем месте плевался (фирма Галактика). Я так и не понял, что он хотел этим выразить. Он же, каждый день программируя на VC6, года через 2 после появления VС7, спросил меня, чем оно отличается от VC7. И это не самый тяжёлый случай.
О! Первый осмысленный (кроме заглавного) пост в этом топике. Да и заглавный пост тоже глуповат - он порождает обсуждение того, чего нет (имеется в виду java).
Такой ответ обычно слышно на реплики типа Цпп - круто а остальное - г**
А ещё более осмысленно можно сказать "правильный ответ уже дан(sun) - В JAVA нет множественного наследования"(трудно не согласиться)
Обсудить я хотел действия в ситуации, когда нужно:
Kachalov1. наследование функциональности нескольких родителей.
2. приведение типа к типу любого из родителей.
и как и почему это делать не нужно (по принцыпу кун-фу)
...
Рейтинг: 0 / 0
Множественное наследование
    #34072277
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остаюсь при мнении что МН нужно
Видны варианты:
Использовать композицию для наследования реализации и интерфейсов для приведения типов
Использовать вложенные классы для наследования реализации//преобразовывать тогда видимо будет сложновато
И то и другое выглядит сложно, но видимо реализовать МН в Java ещё сложней.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072326
Matzumoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наисилил тему начиная где-то со второй страницы, вы друг дружку то понимаете? Впечатление, что каждый говорит о своем, о наболевшем, а не обсуждают нечто вместе. Была попытка привести пример, но и ту забраковали. Так может сначала договоритесь и создадите пример, где это МН нужно и начнете на примере этого примера обсуждать реализации и преимущества МН перед интерфейсами? А то публике, вас читающей, ни бельмеса непонятно.

И такое впечатление, что правы те, кто защищает жабу и принцип "МН вредно и ненужно, что доказано неоднократно". У защитников же МН так и нет удачного примера, доказывающего, что без МН ГОРАЗДО хуже, чем с использованием его.

И кстати, большие листинги выкладывать в тэге SRC - очень портит страницу и расширяет ее за всякие границы. Лучше откройте на nm.ru маленький хостинг и выкладывайте или отформатированный в html код, или зазипованные исходники, а ссылки на них кидайте в тему. Понятно, да? Ну или уж на mytempdir.com, рапидшару, хотя нет, на рапидшару не надо, очень трудно оттуда что-то взять, сидя за NAT с одим ip на тыщу пользователей. (Такие провайдеры у нас чтоб им пусто было)
...
Рейтинг: 0 / 0
Множественное наследование
    #34072335
он же
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MatzumotoНаисилил тему начиная где-то со второй страницы, вы друг дружку то понимаете? Впечатление, что каждый говорит о своем, о наболевшем, а не обсуждают нечто вместе. Была попытка привести пример, но и ту забраковали. Так может сначала договоритесь и создадите пример, где это МН нужно и начнете на примере этого примера обсуждать реализации и преимущества МН перед интерфейсами? А то публике, вас читающей, ни бельмеса непонятно.

И такое впечатление, что правы те, кто защищает жабу и принцип "МН вредно и ненужно, что доказано неоднократно". У защитников же МН так и нет удачного примера, доказывающего, что без МН ГОРАЗДО хуже, чем с использованием его.

И кстати, большие листинги выкладывать в тэге SRC - очень портит страницу и расширяет ее за всякие границы. Лучше откройте на nm.ru маленький хостинг и выкладывайте или отформатированный в html код, или зазипованные исходники, а ссылки на них кидайте в тему. Понятно, да? Ну или уж на mytempdir.com, рапидшару, хотя нет, на рапидшару не надо, очень трудно оттуда что-то взять, сидя за NAT с одим ip на тыщу пользователей. (Такие провайдеры у нас чтоб им пусто было)
Никто не будет выкладывать специально отформатированный код. Или зазипованные исходники. И на рапидшару никто выкладывать ничего не будет.

Почему?
Потому что не нравится - не читайте. Или купите нормальный монитор
...
Рейтинг: 0 / 0
Множественное наследование
    #34072343
Matzumoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
он жеНикто не будет выкладывать специально отформатированный код. Или зазипованные исходники. И на рапидшару никто выкладывать ничего не будет.
Нормальные люди кстати выкладывают и на рапидшару и зазипованные, потому что хотят, чтобы их поняли. Поищите, даже на этом форуме постоянно встречаются ссылки на код, положенный на рапидшару и т.п. Не говоря о rsdn.ru. Почему?
Потому что не нравится - не читайте. Или купите нормальный монитор Потому что нормальные люди если МОГУТ не писать, то НЕ пишут. А если пишут, то так, чтобы мысль донести в наиболее удобной форме, с форматированием, с подчеркиваниями, с выделением цветом, с зазипованными исходниками. Вон NotGonnaGetUs дал ссылку на нормальную полезную книгу и я ее уже скачал
...
Рейтинг: 0 / 0
Множественное наследование
    #34072359
он же
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MatzumotoПоищите, даже на этом форуме постоянно встречаются ссылки на код, положенный на рапидшару и т.п. Не говоря о rsdn.ru.
Не нужно заблуждаться.
На RSDN дают ссылки, т.к. там идет обсуждение аналогичных тем и проще дать линк, чем переписывать тамошний текст.
А по поводу рапидшары - ни один адекватный человек не положит туда файл размером меньше n*10 метров. И уж текстам-примерам там делать совершенно нечего. Никто не будет сидеть две минуты и ждать очередного примера весом в 2 килобайта :) При том что следующий можно слить только через n-надцать минут

Matzumoto
А если пишут, то так, чтобы мысль донести в наиболее удобной форме, с форматированием, с подчеркиваниями, с выделением цветом, с зазипованными исходниками.
Мысль должна доноситься в виде грамотно сконструированных предложений. Выделения цветом, форматирование и подчеркивания - они только для исходников нужны. Исходники форматируются с помощью тега SRC (и, в принципе, терпимо). Что вас не устраивает - мне не понятно.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072361
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MatzumotoNotGonnaGetUs дал ссылку на нормальную полезную книгу и я ее уже скачал

Вас не затруднит привети прямую ссылочку. Я-бы тоже скачал. И почитал с удовольствием.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072513
Matzumoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВас не затруднит привети прямую ссылочку. Я-бы тоже скачал. И почитал с удовольствием.Первая же ссылка в гугле ftp:||files.zipsites.ru/books/programming/oop_osc2book.rar
...
Рейтинг: 0 / 0
Множественное наследование
    #34072529
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MatzumotoУ защитников же МН так и нет удачного примера, доказывающего, что без МН ГОРАЗДО хуже, чем с использованием его.
Забавная демагогия. Есть факт: для приведенного мной простейшего примера никто не привел адекватной SH-реализации. Из этого делается вывод: ".. так и не удачного примера, доказывающего .."

MatzumotoИ кстати, большие листинги выкладывать в тэге SRC - очень портит страницу и расширяет ее за всякие границы.
Присоединяюсь к точке зрения "купите нормальный монитор".

MatzumotoПонятно, да?
Чувак, ты форумом не ошибся?
...
Рейтинг: 0 / 0
Множественное наследование
    #34072638
Matzumoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer MatzumotoПонятно, да?
Чувак, ты форумом не ошибся?Ошибся, да. Если тут находятся люди, отстаивающие пользу МН, то вероятно ошибся. Вы бы еще стали доказывать, что с goto в умелых руках программы можно писать, главное умело goto применять и не допускать ошибок.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072680
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, сугубо для информации - программисты на Java регулярно применяют goto. Думаю, ты этого не поймешь, но break и continue - разновидности goto.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072685
он же
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКстати, сугубо для информации - программисты на Java регулярно применяют goto. Думаю, ты этого не поймешь, но break и continue - разновидности goto.
И это мы еще не пытались говорить об exception'ах, которые вообще умеют гоутусить через такие расстояния, что никаких goto не снились :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34072691
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exceptions - это не goto. Защищенный блок стоит рассматривать как неявную подпрограмму.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072723
он же
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerexceptions - это не goto. Защищенный блок стоит рассматривать как неявную подпрограмму.
Неа.

Я про

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 public   void  one1()  throws  Exception{
  System.out.println("one");
   throw   new  Exception("throw"); // p.1
  System.out.println("one-one");
}

 public   void  two2()  throws  Exception{
  System.out.println("two");
  one1();
  System.out.println("two-two");
}


 public   void  three3() {
  try {
  System.out.println("three");
  two2();
  System.out.println("three-three");
 }  catch  (Exception e) {
  e.printStackTrace();
 }
}
Куда мы перейдем с // p.1 ?
...
Рейтинг: 0 / 0
Множественное наследование
    #34072726
Matzumoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerКстати, сугубо для информации - программисты на Java регулярно применяют goto. Думаю, ты этого не поймешь, но break и continue - разновидности goto.Да я и так это знаю, TiJ by Eckel читал. Но это - не классические goto.

Так же и интерфейсы - не классическое МН.

PS А еще в жабе const нет. А есть static final. И т.д. и т.п. Знаете, в жабе все есть, и если очень постараться можно и через goto написать и соорудить нечто напоминающее МН. Но для того и best practices, чтобы знать, что делать нельзя.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072735
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он жеКуда мы перейдем с // p.1 ?
Смотри.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 private  Throwable currentException =  null ;

 public   void  one1()  throws  Exception {
  System.out.println("one");
  { currentException =  new  Exception("throw");  return ; } // p.1
  System.out.println("one-one");
}

 public   void  two2()  throws  Exception{
  System.out.println("two");
  one1();
  {  if  (currentException !=  null )  return ; }
  System.out.println("two-two");
}


 private   void  three3_internal()  throws  Exception {
  System.out.println("three");
  two2();
  {  if  (currentException !=  null )  return ; }
  System.out.println("three-three");
}

 public   void  three3() {
  three3_internal();
  {  if  (currentException ==  null )  return ; }
  e.printStackTrace();
  currentException =  null ;
}
...
Рейтинг: 0 / 0
Множественное наследование
    #34072747
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MatzumotoНо это - не классические goto.
Это удобный синтаксис для записи частного случая goto. Тем не менее, это все тот же goto, не соответствующий конструкциям структурного программирования.

MatzumotoТак же и интерфейсы - не классическое МН.
Уже лучше.

MatzumotoЗнаете, в жабе все есть, и если очень постараться можно и через goto написать и соорудить нечто напоминающее МН. Но для того и best practices, чтобы знать, что делать нельзя.
Все ж таки удивительно, как очевидна корреляция между специализацией и ориентацией шариков в мозгу.

Топикстартер задал один простой вопрос: объясните, чем так плохо MH, что в Java его не стали реализовывать. Два или три человека в первых постах упомянули возможные неприятности, чем разумные ответы "против" и завершились, дальше начала работать замечательная в своей логичности точка зрения "в Java его нет, этим оно и плохо".

Что любопытно, не так давно существовала еще одна очень похожая тема для священных войн - MSSQLщики в один голос объясняли, что версионность плоха и нафиг не нужна. Потом в MSSQL появилась версионность, и эти голоса тут же исчезли. Интересно, будет ли похожая судьба у наследования в Java.
...
Рейтинг: 0 / 0
Множественное наследование
    #34072759
bmv_rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да мож все попроще, мож Java выпускали второпях и времени нехватило на нормальную реализацию МН. :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34072766
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bmv_rusДа мож все попроще, мож Java выпускали второпях и времени нехватило на нормальную реализацию МН. :)
Сомневаюсь. MH среди прочего плохо сочетается с концепцией "виртуальных по умолчанию" методов - классы-наследники будут разваливаться по любому чиху, придется каждый раз, модифицируя предка, просматривать всех потомков (!) в поисках методов, которые нежданно-негаданно станут реализациями унаследованных. Собственно, это представляет определенную проблему и при SH, но при MH будет просто бардак.
...
Рейтинг: 0 / 0
Множественное наследование
    #34073918
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ай, молодцы :)

И про передачу параметров вспомнили, и про идеальный язык дельфи, и С++-ников с гавном смешали. Знатный топик получился :)

Давайте, флейма ради, добавлю.

90% программистов (даже в java) не пользуются даже одиночным наследованием (обязательное наследование от специальных классов фреймвёрков в рассмотрение не берётся, т.к. делается на уровне "по другому нельзя"). Ещё 9% используют его "подмножествно" (да да: подмножество подмножества :)), а именно наследование от интерфейсов и наследование ради возможности осуществить полиморфный вызов (полностью описывается паттернами из разряда strategy или template method).
И только 1% программистов занимается задачами (разработка фреймворков, разработка для повторного использования, не тривиальные предметные области), где возникает реальная необходимость в применении чего-то отличного от инкапсуляции для борьбы со сложностью.

Т.о. 99% процентов программистов, рассуждая о наследовании, использует самодельные теории, которые никогда на практике не проверялись.
Откуда берутся эти теории?
Очевидно из открытых источников (таких как faq sun'a "почему в java нет множественного наследования?") и в соответствии с кругозором (в виде экспириенса в delphi/c++/qbasic (нужное подчеркнуть)).
Играет ли тут роль многолетний опыт работы? Скорее нет, чем да, т.к. всё зависит от самой работы (типа решаемых задач) и отношения к ней.

А что в итоге? Холивор :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34073949
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs90% программистов (даже в java) не пользуются даже одиночным наследованием
Да ладно Вам. У меня довольно низкое мнение о "среднем дельфере", но если верить Вам, выходит, что "средний явер" куда менее грамотен.

NB! Если я правильно понял, под "пользованием наследованием" Вы имеете в виду "унаследовать собственный класс от собственного же класса" - так?

NotGonnaGetUsИ только 1% программистов
Хм. Есть один заочно знакомый мне молодой парень. Несколько месяцев назад он поступил java-стажером в одну из софтверных фирм второго эшелона - уровня "не то чтобы постоянно на слуху, но если напрячь мозги, каждый третий вспомнит , что уже о ней слышал".

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

Видимо, он сходу вошел в этот 1%?
...
Рейтинг: 0 / 0
Множественное наследование
    #34074239
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer NotGonnaGetUs90% программистов (даже в java) не пользуются даже одиночным наследованием
Да ладно Вам. У меня довольно низкое мнение о "среднем дельфере", но если верить Вам, выходит, что "средний явер" куда менее грамотен.

NB! Если я правильно понял, под "пользованием наследованием" Вы имеете в виду "унаследовать собственный класс от собственного же класса" - так?

Я слегка гиперболизирую, чтобы мысль нашла более живой отклик, но суть именно какая. Только причина не столько в том, что "явер/дельфер/другое" не грамотный, а том, что задачи, где использование наследования не будет высосанным из пальца, встерчаются не так часто как может показаться.
И даже там, где использование наследования уместно, обычно достаточно одного "уровня" наследования, причём с явно обозаченной целью
(Сюда можно отнести создание "пограничных" классов/интерфейсов, через которые будует взаимодействовать различные части системы, определение родовых алгоритмов, конкретные детали которых задаются через наследования от классов с абстрактными методами или путём передачи объекта реализующего определённый интерфейс и т.п. Это, в общем-то частные, хотя и чрезвычайно полезные случаи применения наследования, которые имеют мало общего с понятием is-a или моделированием реальных отношений между сущностями предметной области)

К слову о пальце.
Наблюдал своими галазами иерархию глубиной(!) 20, отражащую, фактически, только классификацию контроллеров для обработки http-запросов.

softwarer
NotGonnaGetUsИ только 1% программистов
Дык вот, через месяц или два после начала его работы мы с ним вполне серьезно обсуждали структуру классов для выданной ему задачи. По его инициативе, и там было, над чем подумать.
Обсуждению, обычно, подлежит выделение сущностей и распределение между ними обязанностей для решения поставленной задачи. Само по себе наследование в этом процессе играет малую роль.

softwarerВидимо, он сходу вошел в этот 1%?
Согласно определению данному выше, в 1% входят те, кто решает достаточно сложные задачи. Значит, если ему дали такую задачу и он успешно с ней справился - значит вошёл :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34074611
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Высосанные из пальца - согласен, бывают. Я помню код решения задачки "открыть шаблон вордовского файла, подставить значения из БД, записать", решенной с выделением таких объектов, как "оператор поиска места для модификации", "оператор осуществления модификации"....

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

Ну а по вопросам, которые задаются в том же дельфовом форуме, я бы сказал, что многие таки реально сталкиваются с задачами наследования и пытаются их как-то решать.
...
Рейтинг: 0 / 0
25 сообщений из 127, страница 4 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Множественное наследование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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