|
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20
|
|
Объясните понятие ООП13.02.2020, 23:25. Показов 21713. Ответов 242
0
|
|
| 13.02.2020, 23:25 | |
|
Ответы с готовыми решениями:
242
Понятие ООП
Дать понятие понятие НОК в кольце целых чисел |
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||
| 26.10.2020, 12:34 | ||
|
"Полиморфизм... Эта интересная штука выплывает из-за того, что имя функции не является полным идентификатором (в паскалевском смысле). "
0
|
||
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
|||
| 28.10.2020, 07:55 | |||
Вы при наследовании стерли имя/тип родителя... И что делать всем полям и методам без того имени? Напрашивается ответ: использовать имя/тип объекта-наследника.А при композиции так как за методами и полями осталось старое имя, то и делать ничего не надо. Для студентов такое обобщение полезно. Чтобы не забывали. А адептам языков программирования надо думать только о том, что выражается на языке программирования программными конструкциями, а не подразумевается.
0
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|||
| 28.10.2020, 09:34 | |||
|
Если я создам новый тип с помощью композиции, то я не смогу использовать его вместо старого.
0
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|
| 28.10.2020, 19:57 | |
|
0
|
|
|
|
||||||
| 29.10.2020, 11:20 | ||||||
|
Не уверен, что это именно утиная типизация:
0
|
||||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 29.10.2020, 14:10 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||
| 29.10.2020, 16:24 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 29.10.2020, 16:38 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|
| 30.10.2020, 12:24 | |
|
vantfiles,
Упрощённо: Полиморфизм - функция может обрабатывать аргументы разных типов. Утиная типизация - тип определяется по поведению (умеет крякать - значит утка). Фактически, функция может обрабатывать только один тип "утка", но относит к нему всех, кто умеет крякать. Это не полиморфизм. Специальный (ad hoc) полиморфизм - это не настоящий полиморфизм, а всего лишь иллюзия полиморфизма. Каждая из функций работает только с одним конкретным типом, но из-за одинаковых имён у разных функций и/или неявного приведения к нужному типу, создаётся иллюзия, что одна функция работает с разными типами. Имеем две разновидности специального полиморфизма - перегрузка и неявное приведение. Истинный (универсальный) полиморфизм - функция может обрабатывать аргументы разных типов. Но не любых, а удовлетворяющих неким условиям, выполнение которых гарантирует, что функция умеет обрабатывать данные типы. Имеем две разновидности универсального полиморфизма - парметрический и включения (подтипов). Полиморфизм подтипов - функция работает с типом Т и всеми его наследниками. Гарантируется, что наследники умеют всё то, что умеет базовый класс. Параметрический полиморфизм - функция работает с любым типом Т, принадлежащим заданным классам. Здесь слово "класс" используется в математическом смысле. Например, "типы, которые можно сравнивать" или "типы, которые можно складывать". Гарантируется, что все удовлетворяющие ограничениям типы будут уметь всё, что требуется функции. В ООП "классы типов" можно имитировать с помощью наследования от интерефейсов. У такого подхода есть два существенных недостатка: 1. Если для входных параметров работает полиморфизм подтипов, то возвращаемый результат нужно приводить к нужному типу. Для решения этой проблемы в современные ООЯ добавляют обобщённые функции (параметрический полиморфизм). 2. Наследование нельзя задать без изменения исходного кода, описывающего тип. (Например, я не могу добавить в тип List<T> наследование от своего интерфейса). Для решения этой проблемы в современные ООЯ добавляют миксины (классы типов).
1
|
|
|
|
||||||
| 30.10.2020, 16:47 | ||||||
|
Это тоже утки?
0
|
||||||
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
|
| 30.10.2020, 19:54 | |
|
Настоящий полиморфизм - это не то, что вы называете настоящим полиморфизмом, просто потому что так хочется. Настоящий полиморфизм - его отличает то, что он специально поддерживается языком программирования.
Отсюда, поддержка языком динамических типов и наличие функции type_of() - это хрень, а не полиморфизм. Настоящий полиморфизм - это перегрузка функции, так как язык поддерживает несколько морфов одной функции. Полиморфизм - это только "поли" (много) и "морф" (форма) в языке. Добавлено через 3 минуты Короче наш предмет спора заключается в следующем: 1. Ваша школа учит давать определения в отрыве от конкретного языка (у вас концепции). 2. У меня определения конкретные, основаны на языковых конкретиках.
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 31.10.2020, 02:30 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|
| 02.11.2020, 13:31 | |
|
В разделе ИИ я уже насмотрелся на деятелей типа "Вы все не понимаете, что такое ИИ, и в учебниках всё неправильно написано. Сейчас я вам объясню, что такое ИИ на самом деле." с последующим объяснением в стиле "Иван и Марфа..".
0
|
|
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
|
| 02.11.2020, 18:42 | |
|
Да просто по вашим шпаргалкам перегрузку функций надо относить к универсальному полиморфизму, но вы не задумываясь на автомате относите ее к специальному полиморфизму. Ведь по определению, универсальный полиморфизм поддерживает сколько угодно разных типов. А перегрузка как раз поддерживает сколько угодно типов. Как быть?
Получается просто нескладуха в учебниках.
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||
| 02.11.2020, 23:17 | ||
|
0
|
||
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
|
| 03.11.2020, 18:29 | |
|
Я не понимаю, почему такое цепляние за "один и тот же код обрабатывает разные данные"? Просто личная хотелка. Не так ли?
Полиморфизм ведь заключается только лишь в том, что функция с одним и тем же именем обрабатывает разные данные. Не путайте "один и тот же код" с "функцией с одним и тем же именем". Первое вообще нисколько не принципиально, не для этого морфизм придумывали. )))) Добавлено через 3 минуты Вот пример полиморфизма - функция strike(), которая моделирует столкновение шариков друг с другом, либо столкновение шариков с подпружиненной поверхностью, потом столкновение шариков с песком и т.д. Кому тут дался ваш универсальный полиморфизм?
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|||
| 04.11.2020, 02:13 | |||
|
Я могу написать на C# функцию, которая принимает object, вызывает GetType() и дальше большой switch по результатам. Но это не будет полиморфизмом.
0
|
|||
| 04.11.2020, 02:13 | |
|
Объясните кое что по ООП ООП в паскале. Объясните что к чему Объясните некоторые принципы ООП в конкретной реализации
Начинаю изучать ООП. Объясните, что такое интерфейс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|