|
Модераторы: korob2001, ginnie |
|
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Я ничего не считаю. Представь себе, что я пользователь который будет использовать программу для рисования, которая пишется в данный момент.. И вот теперь, мне нужно чтобы все прямоугольники закрашивались в красный цвет, а все окружности в зеленый... Более того, меня не интересует отдельный кусок кода, меня интересует где и как он будет находится в рамках того примера который привел korob2001. Добавлено через 10 минут и 51 секунду
У меня есть класс, в котором есть два поля - id, name и конструктор.. Этот класс не является ни чьим родителем и сам ни от кого ничего не наследует.. Более того, в ходе работы алгоритма вполне может быть такая ситуация, что каждый раз у меня будет создаваться не более одного объекта, экземпляра данного класса... - Где здесь полиморфизм?? Остальное я даже комментировать не буду. -------------------- менеджер по кодеврайтингу |
|||
|
||||
mvsgt |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
А ты попробуй -------------------- менеджер по кодеврайтингу |
|||
|
||||
mvsgt |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
korob2001 |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Ну вообще-то, если брать во внимание именно тот код, который я привёл выше, то тут просто стоит добавить свойство color в класс Shape, так как впрниципе любая фигура может иметь цвет, либо не иметь его вовсе, т.е. быть transparent. Ну и инкапсулировать это свойство, добавив в этот же класс методы доступа getColor() и setColor(Color color). Ну и наконец использовать установленный цвет, при работе метода draw(). А где здесь полиморфизм? Где наследование или реализация хотя бы одного интерфейса? Не знаю, как там обстаят дела с Object Pascal, но в Java у составных типов всегда есть родитель Object, собственно унаследованные от него методы и можно вызвать полиморфно, больше никаким полиморфизмом здесь и не пахнет. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Bulat |
|
||||||||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
ну так не интересно, либо уж мы делаем, либо не делаем. От, ты почти пришел к тому, к чему вел я, однако и здесь слишком "легкомысленно" подошел и допустил одну неточность.. Для полиморфизма, нам необходимо, чтобы абстрактные методы не только наследовались, но и переопределялись и использовались.... и если мне не изменяет память, то ниже я перечислю все методы нашего основного метода Object
Вот не могу говорить за все случаи из жизни, но лично я когда работал на Java и писал как раз "коллекции" - мне не приходилось переопределять данные методы. А вообще мне очень не понравилась твоя фраза: смею напомнить, что Java многое переняла у C/С++ и лишь представила это по-своему, как впрочем и C# И вот я представлю на твой суд очень интересную статью http://ru.wikipedia.org/wiki/%D0%92%D0%B8%...%86%D0%B8%D1%8F И в 120-й раз повторюсь, при понимании и осознании парадигм ООП, все же не очень хорошо опираться лишь на реализацию конкретного языка... Обращу внимание, на данные строки из этой статьи
а также
и кроме того
Увы, мне пришлось потратить пару часов и эта не единственная интересная статья, которую я нашел. Было бы еще интересно взглянуть на VBasic, но я с ним не знаком и даже в университете не приходилось с ним сталкиваться(в отличие от C++ и Object Pascal) Засим я расписываюсь в завершении дискуссии со своей стороны, ибо лично мне совсем не интересно обсуждать что-то с людьми, которые не то что "узко" понимают какие-то парадигмы, а просто не желают их хорошо понимать и расширять границы своих знаний, оттого и не видят тех недостатков на которые я уже давно пытаюсь открыть глаза. korob2001, а учитывая что язык Java является более молодым по сравнению с тем же С/С++, Turbo Pascal/Object Pascal я вообще сомневаюсь, что реализация парадигм в данном языке наилучшая нежели в остальных... Более простая, понятная и удобная для разработчика - да, а вот лучшая ли?? Это сообщение отредактировал(а) Bulat - 13.1.2010, 16:06 -------------------- менеджер по кодеврайтингу |
||||||||
|
|||||||||
korob2001 |
|
||||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
А что мы делаем? Ты попросил, добавить возможность изменения цвета фигуры, я всё описал. Или нужно каждый раз приводить полный код? Это само сабой разумеется, иначе как же мы создадим обьект? Класс унаследовавший абстрактный метод и не определивший его, может быть только абстрактным. Создавать обьекты абстрактного класса, боюсь не получится, кстати это же написано и в приведённой тобой статье.
Насчёт того, что Java перенял многое от C++, а так же и других языков, ничего против сказать не могу. Хотя, к чему было это высказывание, я так и не понял. Я действительно не знаю, как обстаят дела с ООП в Object Pascal, потому и написл отталкиваясь от Java.
Зато есть понятие абстрактного метода и в куске статьи выше написано: Такие методы без реализации называются «чисто виртуальными» (калька с англ. pure virtual) или абстрактными.
Никто с этим и не спорил, даже пример приводился с абстрактными методом. Я тоже считаю, что лучше закончить это обсуждение, особенно когда человек вообще не желает прислушаться, даже если ему говорит об этом не один человек. Плохо так же то, что у тебя просыпается желание кого-то, на чём-то "подловить". Что бы заниматься этим, нужно самому знать тему от и до. Кстати, Object - это класс, а не метод. Это сообщение отредактировал(а) korob2001 - 13.1.2010, 19:40 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
Logo |
|
|||
Опытный Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Пол года на перле не програмировал... забыл как называется, подскажите.
Модуль для очистки пакета класса от экспортируемых функций из других модулей, что бы они не были методами. Поиск не помогает. |
|||
|
||||
Pfailed |
|
|||
Опытный Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
namespace::clean?
|
|||
|
||||
Logo |
|
|||
Опытный Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Да, походу, он, правда странно что его нет в стандартной поставке.
|
|||
|
||||
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |