уххх бляяя, меня рапирает от знаний, уххххххххххххххххх, пойду маме расскажу что я выучил!!
@Pavel-n5 жыл бұрын
УЪУ СЪУКА
@BestMovieActors5 жыл бұрын
Главное папке не рассказывай, переебет по ебалу ногой со старта! Ага
@KulaGGin5 жыл бұрын
Дааа... После просмотра этого видео никто даже не сможет написать классы, которые наследуют от другого класса. Не пустые, а реальные.
@Vo1andyara3 жыл бұрын
@@KulaGGin тут видео не про это же) про более крупных масштабов проблемы
@Vo1andyara3 жыл бұрын
если ты ниче не понял, то рано это смотреть) это для шарящих более менее
@abubakrshoaliev27752 жыл бұрын
После нескольких месяцев напряжённого программирования это первое видео от экстрим кода, который я понял. И знаете, смотреть понимая что говорит этот чел - просто блаженство! Спасибо тебе большое, я теперь понял наконец концепцию ООП!
@HeIvis Жыл бұрын
Привет, как успехи в программировании?
@abubakrshoaliev2775 Жыл бұрын
@@HeIvis Как быстро летит время однако, я и не думал что этот коммент я писал 7 месяцев назад. Я все еще изучаю аспекты языка и познаю что-то новое. Я все это время шел по карьере тестировщика, но в недавнее время я начал интересоваться созданием десктоп приложений на джаве. Из достижении могу только упомянуть про экзамены Oracle по джаве. Правда должен признать что сейчас больше времени уделяю подготовке к универам и учебе
@usebghh Жыл бұрын
Я поступил в тех уник и лично в нашем универе меня напрягает отдача в сторону узбекскому языку, истории Узбекистана и тд. Т.к. я знаю что мне не пригодится. Если можно было бы я отдал все время программированию раньше. Т.к. это очень интересно
@MisterB4el6 жыл бұрын
в конце видоса у меня конструкторы отклеились от классов в радиусе двух проектов
@60d936 жыл бұрын
Почему такой смешной юмор никто не оценил?
@dann1kid5 жыл бұрын
=D
@DrForse5 жыл бұрын
@@60d93 просто никто не понял xD
@konstantinfilonenko55993 жыл бұрын
@@dann1kid} ppp0000
@crazist2283 жыл бұрын
@@DrForse я не понял(
@peterpotylicin43745 жыл бұрын
"А сейчас внимание вопрос.." 4:43 - тембр и интонация почти один в один как у ведущего)) респект)
@MasterSergius5 жыл бұрын
Если уж разговор о Доте, то там еще должен быть клас "Мамка" и метод "е*ать"
@fakt78145 жыл бұрын
Разница между статической и динамической типизацией не в том, что в статической ты указываешь типы, а в динамической нет, а в том, что в статической корректность типов проверяется на этапе компиляции (т.е. буквально статически), а в динамической -- в рантайме. В языках с выводом типов не всегда нужно указывать типы, при этом они статические. Например, в Haskell можно задать полиморфную функцию add x y = x + y (да, это буквально все определение функции) без указания типов. 7:25 ad hoc полиморфизм это тоже "настоящий" полиморфизм, без него, например, невозможно было бы написать полиморфную функцию сортировки (тебе в любом случае нужно перегружать оператор >= для каждого типа), просто в ООП языках он выглядит коряво, это правда.
@АлинаЛебедева-с4ъ5 жыл бұрын
Ad hoc полиморфизм - это просто статический полиморфизм. Ты пишешь var x = 5, а перед компиляцией это превратится в int x = 5. То же самое с перегрузкой функций. Пишешь функцию с уже существующим названием, но другими аргументами, и перед компиляцией подставится конкретная реализация.
@princessmary5556 Жыл бұрын
@@АлинаЛебедева-с4ъ Вы внимательно прочитали сообщение *fakt* , и решили, что он не в курсе, что такое Ad hoc ?
@boomman21176 жыл бұрын
Отлично заходит. Но пока видосика дождешся, можна и от климакса умереть. Спасибо за видос.
@eduardstreltsov39613 жыл бұрын
причем даже если ты мужчина
@aleksandercross59365 жыл бұрын
"Пока говно на вентилятор не попадёт...." Ржал) Красава
@viss234 жыл бұрын
Ебать,спустя 2 года я понял о чём видео,наверное из-за того,что я джава стриптизёр.
@php10363 жыл бұрын
жиза
@crazist2283 жыл бұрын
простите но разве в джава нет ооп?
@Светлана-в7в6 жыл бұрын
За два года обучения на ИТ в вузе не узнала столько, сколько узнала за этот видос
@alinatelyk6 жыл бұрын
Чувааак, ты вот прям взял и запилил то, что я год никак не соберусь. Это очень клёво.
@MrAqbos Жыл бұрын
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
@helga_volt7 ай бұрын
идеально лекция + картинки + юмор
@dkvChannel8 ай бұрын
Бля, видос настолько хорош что мне надо смотреть его на свежую голову. Это лайк, господа!
@Eldertri5 жыл бұрын
4 года работаю, но видосы смотрю с удовольствием, годно)
@Crazmuss6 жыл бұрын
Блэдь, так вот почему я всегда считал ооп каким-то ненужным говном _мимо любитель душить питона_
@suryaninov6 жыл бұрын
Ёмкий полиморфизм
@eduardeduard9334 жыл бұрын
Вот это нужный видос, недавно прошел эти темы и такая информация и пример со стороны очень кстати, лайк
@outresler17572 жыл бұрын
вот это да, 4 года прошло, а мы все мацаем у ExtremeCode насущные вопросы, потому что видосы сок
@SergeyTish6 жыл бұрын
Если бы я заведомо не знал, что такое полиморфизм, то из этого видео скорей всего так ничего бы и не понял... Просто я тупой, а это видео, вероятно, только для умных.
@Asiro-S5 жыл бұрын
а видос разве о понимании полиморфизма? просто, наверное я даже не сосредотачивался на попытке понять
@Vo1andyara3 жыл бұрын
тут скорее что ты должен уже знать что это такое, но по факту чётко
@tankowot2 жыл бұрын
Люблю эти старые видосы без рекламы
@holu31602 жыл бұрын
в питоне есть библиотека typing и можно с ней сделать, чтобы функция принимала аргумент только с определенным типом
@illson46666 жыл бұрын
Как понять каждый раз новый герой? я совсем отбитый, сижу и спамлю Мипо на ласт пик, потому что я могу, и у меня есть самописные макросы, которые мне достались от бабушки. В каждой игре повторяется ряд персонажей, ты не прав, и я требую в знак принятия этой ошибки снять видео "С# для маленьких и тупых"
@Dimarious.G6 жыл бұрын
Illson 7Я так в конструкторе пяток персонажей, вариантов комбинаций много: чтобы не писать по конструктору на каждую комбинацию (а число комбинаций будет драматично возрастать с каждым новым добавленным героем), есть полиморфизм: создаёшь интерфейс IHero, например, вешаешь интерфейс на классы всех своих Мипо-Шмипо-Пуджей-Муджей, и всё, достаточно одного конструктора с пятью IHero.
@dann1kid5 жыл бұрын
@@Dimarious.G именно. Если есть объект map, который включает в себя все остальные объекты, то они взаимодействуют с ним через его интерфейс. И каждая сущность должна толкать свои речи с map по его жаргону, то есть "нормальным языком в рамках дозволенного".
@imkuepf6 жыл бұрын
То чувство, когда слышал этот пример на стриме и так же подумал решить проблему)
@aukolosov Жыл бұрын
спасибо за видео. разные подходы там и там обозначены. а в серьëзных проектах, где важна и безопасность и производительность по-любому применяют покрытие кода тестами
@alexlevinshtein38355 жыл бұрын
Информативный видос, содержит инфу которая часто встречается на собесах
@andredru42788 ай бұрын
Спасибо. Надо повторить. С первого раза недопонял.
@Денис-у6ь9ч6 жыл бұрын
как я готовлюсь к собеседованиям) спасибо чел)
@petrvictorovich3 жыл бұрын
Ааааа! Я всё пооонял! Если я пешу на JS - я могу забить на: 1. Паттерны 2. ООП 3. Полиморфизм Профит!
@ОльгаТретяк-г7п3 жыл бұрын
Здравствуйте!! Скажите пожалуйста сделаете ли вы видео-глоссарий для начинающих программистов?)) Мне кажется большая часть зрителей будет рада))
@volchiy_pisun6 жыл бұрын
Отлично получается, продолжайте в том же духе!!!!
@gentleNES6 жыл бұрын
Хотелось бы уже чего-нибудь посложнее. Видео о рефлексии или тех же паттернах, например.
@ypouhivanov21736 жыл бұрын
о, о рефлексии дистительна отель бы
@anmaner48226 жыл бұрын
gentleNES А в чем проблема прочесть книгу по паттернам? Благо есть куча отличных книг на эту тему.
@sys.reboot67344 жыл бұрын
@@anmaner4822 С книги по паттернам не поорать нормально. Хотя если я ошибаюсь и у вас есть орная книга по патернам, то дайте сурс.
@diminddl6 жыл бұрын
то чуство когда забил на с++ на моменте ООП и случайно сюда попал и офигел.
@ivana.47533 жыл бұрын
Чувак, на 3:40 я просто валялся под столом. Аплодисметы за юмор! :))))
@sniper95773 жыл бұрын
Очевидная расстаноква линий в данном случае: кери Пудж с спортом Магнусом, мид Лина и в офлайне Свен с ВРкой. Классный пик, кста, нужно затестить.
@Qnoize5 жыл бұрын
Очень интересно, но с середины перестал понимать, видимо я тупой ещё пока, пойду книжки читать!)
@michaeldevichenskiy45885 жыл бұрын
Бомбичесеий видос ! Автор я твой фанат!;)
@Денис-ю4ь6 жыл бұрын
ещё не посмотрел, но спасибо за видео
@smaramna Жыл бұрын
В шарпе можно ещё object юзать, вместо dynamic Первому проще downcast забабахать, потому что это всем классам класс (если не указывать родителя - он там будет object "неявно") А с dynamic свои приколы Можно конечно упороться и наследовать свои классы от dynamic, а потом ловить с этого рофлы и лулзы Но и это тоже работать будет, как-то Вот классно придумали множественное наследование После чего, в ООП прострелить колено стало в два раза проще, равно как и хрупкость родителей/наследников стала в два раза более хрупкой
@mechmaker93464 жыл бұрын
Кстати про статическую типизацию: Если так посмотреть на развитие систем со статической типизацией,то данные системы скоро будут ничем не уступать системам с динамической типизацией. Параметрический полиморфизм есть. Полиморфизм,описанный в видео тоже имеется. А проблемы с хешмапами с различными типами помогут решить зависимые типы с параметрическим полиморфизмом.
@princessmary5556 Жыл бұрын
Вы пишете: *данные системы скоро будут ничем не уступать системам с динамической типизацией* Это какой то бред. Статические системы в принципе ничем не уступают динамическим уже просто потому, что динамические реализуются поверх статических.
@dennis39616 жыл бұрын
Красиво. До слёз.
@VilRapt2 жыл бұрын
Прекрасная работа!
@Burgaltay4 жыл бұрын
Какое интересное чувство юмора 😂🖖🏻👍
@god_bika5 жыл бұрын
Да не. Инкапсуляция оно тоже, облегчает понимание чего же класс делает конкретно. Просто приватно-протектные поля и методы не рассматриваешь и четко видишь его, класса, суть. Воот. Ну и безопасность в наименованиях этих приватных сущностей. Не надо бояться дублирования имен(все закрыто на замок, инкапсулированно). А ведь это может произойти случайно, не специально.
@Cada0x16 жыл бұрын
Скучаю по вашим видосикам, куда вы пропали? :(
@eugenefedorov34983 жыл бұрын
Примеры на доте это гениально, хотя не хватает что то про мам…
@sfrog3033 жыл бұрын
После 2:44 пришлось ставить видос на паузу, поржать, успокоиться, и только потом продолжать смотреть потому что дальше информация уже не шла)
@egoist_top5 жыл бұрын
"ситуация возникает довольно редко, но уверяю вас, эта ситуация довольно распространена" (с) ExtremeCode
@goreney5 жыл бұрын
Отлично из контекста вырвал. "Может показаться, что ситуация возникает довольно редко, но уверяю вас, эта ситуация довольно распространена".
@АльбертАвагян-м9т4 жыл бұрын
@@goreney Просто разъебал по фактам
@mr.zazarun44356 ай бұрын
Он сказал МОЖЕТ показаться, но уверяет, что ситуация довольно распространенна
@ДаниилГончаренко-г8я5 жыл бұрын
Приятный для просмотра видосик)))
@Stronble5 жыл бұрын
Нифига ты с примером из доты замарочился)
@kemsekov63315 жыл бұрын
От души, братан
@SupraStututututu4 жыл бұрын
куда делся видос по инкапсуляции?инкапсулировался по полной?
@АлинаЛебедева-м5ь5 жыл бұрын
"Без него невозможно писать приложения, по крайней мере в объектно-ориентированном стиле с использованием статической типизации". Ну, динамические-типизированные ЯПы вообще не могут существовать без полиморфизма, ибо динамические переменные не могут быть без динамического полиморфизма. А ещё насчёт ad hoc полиморфизма. Я пока в этом слабо шарю, но это, получается, просто статический полиморфизм?
@alastor7826 жыл бұрын
Пишу на питоне, но на удивление всё понял.
@Bayanovi46 жыл бұрын
Кулл хацкеры обожают код с динамической типизацией)
@QuickXplain3 жыл бұрын
Так и не смог догадаться, какое слово спрятано под Ё*кий.
@garrysc15443 жыл бұрын
Б
@hinnq81563 жыл бұрын
Ребят, расскажите пожалуйста. Почему мы не можем сделать def вместо string (0:58) тогда же всё нормально работает. Или я залупеньчкоторый ничерта не понимает?
@acrossthedoor3 ай бұрын
Какой def? string это тип возвращаемого функцией значения. Def это из питона суета или откуда ты взял это?
@hinnq81563 ай бұрын
@@acrossthedoor чел, ты немного запоздал с ответом
@Slavaxxx15 жыл бұрын
Разумист, умен и масленист.
@Fox_exe5 жыл бұрын
Статичиская типизация ещё и на скорость и потребление памяти нехило так влияет. Вот нужна тебе переменная в виде числа 0..254 - Проще всего юзать char (unsigned int) - Такая переменная будет "Жрать" один байт оперативки. В динамических языках - Сначала пройдет проверка, что это и как хранить. Потом оно (Внезапно!) может превратиться в строку и занять уже не один байт, а аж 10 (Не помню в какой из языков такая херня, но бывает и не такое)...
@АлинаЛебедева-с4ъ5 жыл бұрын
В динамически типизированных языках всё ещё интереснее. Переменные не могут храниться в стеке, т.к. в любой момент программы могут внезапно изменить тип данных, потребовав другое количество байт памяти, соответственно данные хранятся в хипе(динамической памяти). Это память, которую можно удалить в любой момент, когда ты захочешь, а потом выделить ещё какое-то количество байт памяти. Но получить доступ к ней можно только через указатель(4 байта на 32-битной системе и 8 на 64). Но к тому же динамическая память выделяется операционной системой, а ей нужно запомнить область, где лежит кусок динамической памяти. Она помещает прямо перед выделенной областью какие-то данные, которые позволяют нормально работать с динамической памятью. А он весит ещё несколько байт. Так что любая переменная требует примерно от 10 байт, даже если хранится просто одна буква. (исправьте меня, если я написала неправильно)
@princessmary5556 Жыл бұрын
Вы пишите: *Такая переменная будет "Жрать" один байт оперативки* Не факт. Такая переменная будет жрать *минимум* 1 байт
@princessmary5556 Жыл бұрын
@@АлинаЛебедева-с4ъ Вы пишете: *Переменные не могут храниться в стеке, т.к. в любой момент программы могут внезапно изменить тип данных* Это чушь. Из того факта, что они могут в любой момент изменить тип, никак не следует, что переменные не могут храниться в стеке. И так, на всякий случай: размеры указательных типов не фиксированы. Никто не гарантирует, что они будут именно 4 байта на 32-й платформе, и 8 на 64-х битной.
@keerpeech16 жыл бұрын
Я один смотрю эти видосы ради шутеек автора, а не для того, чтобы подчерпнуть что то новое?)
@ДмитрийАнтоненко-м9ъ6 жыл бұрын
Когда уже, проф кодер, но шутки про ебобо отлично заходят
@hiryu706 жыл бұрын
Дмитрий Антоненко с ростом компетенций потребность в ебобо становится более очевидной
@kadyshev27596 жыл бұрын
Да.
@uncle-xxi5 жыл бұрын
поДчерпнуть это как? низэнько-низэнько? :) :) :)
@dasauser5 жыл бұрын
У тебя есть видос, типа "почему php - не ЯП"? Если есть, то дай ссыль(именно твое мнение), а если нет, то запили. Очень хочется узнать, почему ты его (пхп) не упоминаешь в большинстве видосов, обходишь стороной.
@MasterMen20114 жыл бұрын
6:52 Игра: Age of Empires II: The Conquerors (2000)
@PAPAKOTT6 жыл бұрын
Браво !!!
@bogdankovtun33256 жыл бұрын
Добрый день , можете обяснить зачем мне нужен CLR поскольку я начал читать Рихтера и у меня появилось такое впечетление что я читаю что-то ненужное . Смотря на примеры , я понимаю что это я прочитал у Шилдта . Нужно ли мне дальше продолжать это делать или перейти на болие практичную книжку ?А то я тот человек который не воспренимает ту информацию которая не есть интересна или практична . Прочитав уже 100 страниц ,я так и не понял где я могу применить полученые знания . (Сори за русский, в школе не учил .)
@daniil77506 жыл бұрын
Gregoruy Horikov ты новичок в программировании? Отложи пока Рихтера, ещё рано, потом вернёшься, читать его нужно, но пока ничего не поймёшь, сначала учи сам C#, книг много, можешь глянуть на Троелсена, Шарп (фамилия автора, да), или что нибудь в инете.
@elsukovandrey6 жыл бұрын
Точняк, на входе только Троельсен. Рихтер подождет. Да и хуй на него можно забить.
@Kengur85 жыл бұрын
Охуеть, дотку то без полиморфизма не написать было! Пойду скажу Габену об этом.
@squidwardfromua4 жыл бұрын
Тем временем я: **звук думающего модема** **пошёл кодить на Blitz Basic, где нет методов**
@ancient-raccoon3 жыл бұрын
а почему шаблоны например не использовать в методах где возможны различные типы параметров?
@fuad2069 Жыл бұрын
А как насчёт инкапсуляции что означает сокрытие данных?
@princessmary5556 Жыл бұрын
А насчет инкапсуляции: она вовсе не означает сокрытие данных.
@ВиталийШуляк-в4к5 жыл бұрын
Какие угодно, но только не тоненькие программерские ляшечки😆
@gaidzin23 жыл бұрын
Про способность функции обрабатывать данные разных типов.
@vycrumblossom54045 жыл бұрын
Как тут уже писали, статика/динамика говорит о времени проверки типов (компилация/выполнение). Не надо путать с явной/неявной и сильной/слабой типизацией. Зачем путать людей? А чтобы в метод не попало хер знает что, надо проверки на тип данных делать. Никто не запрещает в том же Python генерировать свои исключения. И еще, C таки со слабой типизацией, так что толку от проверок на этапе компилиции особо нет, если он потом может неявно преобразовать данные.
@markshevelev95086 жыл бұрын
На 4:38 возникает вопрос: а почему мы создали много разных типов героев, да потом ещё пытаемся подсунуть их в качестве параметра в функцию? Если мы создали разные типы, значит объекты этих разных типов должны использоваться в разных функциях. А если они используются в одной общей функции, то почему мы не хотим создать одни общий тип для "героя"?
@elsukovandrey6 жыл бұрын
Блять, просто такое api. Как будто ты не сам не говнокодил...
@pasha57606 жыл бұрын
Браво!) Интересно, а если на собеседовании в такой форме, как твои видео отвечать😂😂 Думаю тогда можно попасть к весёлым ребятам))
@KPAMCATEJlb6 жыл бұрын
Главное закрякивать некоторые свои слова, всё-таки на собеседование пришёл же..
@pasha57606 жыл бұрын
Тогда я буду много крякать))
@elsukovandrey6 жыл бұрын
Блять, просто шли всех нахуй сразу! Сам всегда так делаю...
@a.o.yaroslavov5 жыл бұрын
C# с гибридной типизацией, там есть dynamic.
@squidwardfromua4 жыл бұрын
3:09 **Этот мем** Серьезно?
@stazzad26065 жыл бұрын
я посмотрел видео:" что такое полиморфизм"?
@vladimirmedvedev89085 жыл бұрын
Чувак запили видос в гуспрском стиле - замени матерки на элегантные обороты. Просто интересно.
@hutzpa36196 жыл бұрын
Примеры заебись, но уверен что не все поймут из видео что есть разные виды полиморфизма. Хотя как вводный гайд в эту тему, зайдёт думаю норм
@Александр-г9я6л6 жыл бұрын
Первый раз услышал про ad hoc полиморфизм. А ты на каких героях в дотку гамаешь если не секрет?
@HellfireRampage6 жыл бұрын
Лист с персонажами передавать на вход методу не ?
@ВсеволодЗорин-л6н5 жыл бұрын
тоненькие программирские ляшечки)))) ухаха))) поржал от души) лови лайк и подписку чисто за юмор) ну и инфа кому-то полезна)
@AlpinWeb5 жыл бұрын
Приятного аппетита!
@ForesteamIV3 жыл бұрын
5:40 да не, никаких проблем. В плюсах можно все через pvoid ебашить xD
@kick49945 жыл бұрын
А как потом узнать к какому классу нужно downcast Hero?
@seniordev92756 жыл бұрын
Как без наследования невозможно добиться полиморфизма? Сам же говорил про ad hoc полиморфизм)) Ну а если к словам не придираться то видос годный!
@leshi_110 ай бұрын
Удобство напрямую связано с безопасностью
@kisukisu3248 Жыл бұрын
Почему без инкапсуляции невозможно наследование?
@DrSethGray3 жыл бұрын
Обмазался нутеллой, поставил это видео в рамочку, сел в углу, качаюсь и мантрую: статическая типизация, статическая типизация ..
@the-best-animal6 жыл бұрын
Почему видео о наследовании называется "полиморфизм" ?
@Shaliko555 жыл бұрын
Абстрактные классы реализуют на практике один из принципов ООП - Полиморфизм
@me_000_xXx5 жыл бұрын
там не было про extends или inherits
@АлинаЛебедева-с4ъ5 жыл бұрын
Потому что это видео о полиморфизме. Да, тут используется наследование, но оно открывает дорогу к полиморфизму, и именно это тут демонстрируется
@user-dd5nt5qm5k3 жыл бұрын
@@АлинаЛебедева-с4ъ табуретка? :)
@al-pvpsko3 жыл бұрын
Не знаю как в других языках с динамической типизацией, но в моём любимом ♂Python♂ можно проверять соответствует ли переменная / обьект определённому классу / типу данных.
@russianyoutube7 ай бұрын
typeof, instanceof в js/ts насколько я помню
@KbIPbIL05 жыл бұрын
В питоне не нужны многие паттерны, потому что они встроены в язык на уровне синтаксиса.
@smdfb73346 жыл бұрын
Окей , а как после создания абстрактоного класса теперь получить в radiant доступ к уникальнім переменным класса sven допустим??
@АлександрСимонов-щ6щ6 жыл бұрын
Sven sven = (Sven)hero2; sven.кунуть_перчатку();
@ВладимирВоробьев-е6о5 жыл бұрын
Перегрузка методов была еще в простом C, в те годы, когда ООП не был даже в проекте.
@princessmary5556 Жыл бұрын
Это бред. В сишке нет, и никогда никогда не было перегрузки методов.
@MegaKimor4 жыл бұрын
расскажи о агрегации и композиции
@feilov36383 жыл бұрын
Что делать если даже не маслёнок?
@ypouhivanov21736 жыл бұрын
даешь про рефлексию
@OlegBondar19986 жыл бұрын
это самое аxyeнное объяснение полиморфизма! давай видос про функциональное программирование
@kek29613 жыл бұрын
Пикаем, сохраняем, передаем созраненные данные в мапу
@yava432 жыл бұрын
Полиморфизм - один из главных столпов объектно-ориентированного программирования. Его суть заключается в том, что один фрагмент кода может работать с разными типами данных.
@yava432 жыл бұрын
Норм формулировка?
@princessmary5556 Жыл бұрын
@@yava43 Да. Единственное: в вашей формулировке отсутствует исходный посыл: зачем это нужно? В буквальном смысле: почему полиморфизм - это круто, а отсутствие полиморфизма - это отстой?