powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Наследование(ООП). растолкуйте
20 сообщений из 120, страница 5 из 5
Наследование(ООП). растолкуйте
    #35978369
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и чё мы там должны были увидеть, интересно? красивые квадратики?
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989527
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Появились вот какие соображения. Смысл введения класса "квадрат" будет в том случае, если программист сам решает, что вот резервируем объект, принадлежащий классу "квадрат", а в другом случае - классу "прямоугольник". Тогда квадрат, унаследовав от прямоугольника формулу вычисления площади, вычислит свою площадь правильно - смысл в наследовании есть. А если каким-то другим образом образуется из прямоугольников подмножество квадратов - то тут и возникают проблемы.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989629
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь есть некрасивый антипаттерн. Если фигуру класса "прямоугольник" схатили мышкой за угол и потянули в сторону, и при этом сделали её квадратом (по размерности). То что делать с её типом? Динамически сменить? Или оставить эдаким равносторонним прямоугольником?

Парадокс.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989711
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

1.0 - динамически заменить на цлое :)
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989816
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Динамически сменить.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989818
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beluginmayton,
Динамически сменить.
Ты-бы такое сделал в своём проекте?
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989820
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin,

зачем?
если обьект - прямоугольнит, значит это кому нибудь нужно, и равенство сторон допускаеться

гляьнь мой пример выше
если вещественное число без дробной части, оно динамически не приводиться к целому. тут ситуация аналогичная
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989961
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

я к сожалению, не писал на языке который такое допускает, если бы работал на cecil был бы опыт, я думаю.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989964
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,
ну я рассматриваю пример как искусственный - так как с квадратом не связано какой-то мегалогики которую плохо держит прямоугольник. Если бы я работал на языке поддерживающе динамическую классификацию и задача подразумевала вестма специфическуб логику в "квадрате", то такое, наверное, было бы удобно.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35989999
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаком с cecil, но насколько позволяют судить мои знания в области ООП, смена типа (конструирование нового объекта) на ходу - операция имеющая большие трудозатраты и со стороны разработчика и со стороны исполняющей среды. Гораздо проще на мой взгляд расширить прямоугольник функционалом равностороннего прямоугольника.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990037
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
я не думаю что на cecil для программиста это будет сильно затратно

Думаю, будет типа того:

Код: plaintext
1.
2.
3.
4.
5.
6.
object rectange;
	method area(b@buffer) { b.width * b.height }

predicate square isa rectange when rectange.width = rectange.height;
	method area(b@buffer) { b.width ^  2  }

...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990048
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin,

а множественное наследование? есле даный обьект нужно передавать в методы которые обрабатуют правильные треугольники
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990062
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу. конечно же многоугольники
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990100
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

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

Так как я не в курсе как это дальше передавать, я думаю, можно было бы привести прямоугольник к правильному и в таком виде передать методу.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990141
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin,

как привести? создать новый обьект?. а если метод должен изменить обьек переданый по ссылке?можно реализовать почти все любыми средствами(ели язык полный по тюрингу), но создания обходных путей в данном случае не вижу.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990242
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

Так же как вы передавете указатель на переменную типа object в метод, который работает с Button.

Если у вас где-то написано что ПравильныйМногоугольник isA МногоУгольник where всеСтороныРавны and всеУглыРавны

То многоугольник автоматически становится равносторонним, когда у него все углы равны и подменяются реализации методов.

Если он его изменит в рантайме то он может перестать быть правильным многоугольником. И что?

Вон в js вообще можно добавлять и сносить методы по ходу дела и ничего - живут.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35990853
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beluginВон в js вообще можно добавлять и сносить методы по ходу дела и ничего - живут.
Поэтому, наверное и крупные проекты на js никто не пишет.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35992833
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, мне кажется, на js их не пишут из-за того, что нет окружения нормального ни для чего кроме бьраузеров. А на смолтоке, наколько я знаю, IBM много чего крупного в свое время писало.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35992845
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эээ... ну, насколько я помню в Windows для административных скриптовых задач используется VB. Но в принципе, можно и скриптовать через JS. Поэтому не вижу особых трудностей.
...
Рейтинг: 0 / 0
Наследование(ООП). растолкуйте
    #35992890
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
ну там кот наплакал окружения. Сравните с питоном, на котором ERP даже пишут.
...
Рейтинг: 0 / 0
20 сообщений из 120, страница 5 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Наследование(ООП). растолкуйте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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