|
|
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вот настал тот день когда я столкнулся с 3-мя китами ООП. Ну насчет инкапсуляции все понятно вроде. Когда прочитал о наследовании тоже думал что все понятно, ну после прочитанного об полиморфизме...появилось уйма вопросов???? Насколько правильно я понимаю...К примеру есть два вида мячей(футбольный и баскетбольный)...Все они наследуют общий класс мяч(форму,вес...) а вот как их использовать-ИГРАТЬ(бить ногой или кидать рукой) это уже полимофизм?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 18:19:59 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaа вот как их использовать-ИГРАТЬ(бить ногой или кидать рукой) это уже полимофизм?... И ещё типичная ошибка проектирования модели. Играют игроки, а не мячи. А то, как результат такого подхода выйдет мяч, который сам себя играет, голы считает и ещё и на табло выводит. Полиморфизмом в данном случае не легко применить. Можно футболисту дать баскетбольный мяч. Меняется только цвет и физические свойства. На поведение мяча это не отразится. Т.е. это два экземпляра класса Мяч, с разными значениями одних и тех же свойств. Полиморфизм же можно применить к игрокам. Потому что они, в отличие от мяча, обладают поведением. И у игроков поведение разное. Хотя все они люди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 18:40:52 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
http://robocode.sourceforge.net/ - поиграйтесь с этим проектом. У меня на сайте есть лабы для студентов - там раскрываются некоторые из основных приемов ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 18:49:16 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
тогда для начал возьму более примитивно...Наследование отвечает за свойства объектов, а полиморфизм за действия над объектами? припустим футболист, и мяч разное объекты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 18:49:32 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaНаследование отвечает за свойства объектов, а полиморфизм за действия над объектами? Нет. Наследование это возможность использовать состояние и поведение предка. И зачем вы сконцентрировались на "действии над объектами". Оперируйте более простым понятием - "поведение". "Поведение" объекта это "действие" объекта, а не кого-то другого над ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 18:52:40 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, ну просто и за того что что у полиморфизма типа определение "Один интерфейс для множества объектов"...ну в таком случаи для нашего примера нужно описать два поведение. Для игрока и для мяча(и это будет полиморфизм), и два родительских объекта(мяч и игрок) которые мы будем наледовать...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:10:27 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaну просто и за того что что у полиморфизма типа определение "Один интерфейс для множества объектов"...ну в таком случаи для нашего примера нужно описать два поведение. Для игрока и для мяча(и это будет полиморфизм), и два родительских объекта(мяч и игрок) которые мы будем наледовать...? Есть интерфейс - модель игрока - метод - "играть в мяч". Есть игроки - они реализуют этот интерфейс. (будьте аккуратнее с терминологией, не знаю откуда вы взяли про "множество объектов") Игрок в баскетбол реализует интерфейс одним способом, игрок в футбол - другим. Причем оба реализуют одно и тоже поведение - "играть в мяч", разными способами - полиморфизм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:17:45 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Blazkowicz, вот все в основном все понятно...правда АБСТРАКТНО-ну это уже завтра)а за терминологию вы правы для множества методов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:33:30 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaа вот как их использовать-ИГРАТЬ(бить ногой или кидать рукой) это уже полимофизм?... как раз не совсем. ведь игрок - зная что это - мяч, не обязан знать баскетбольный он или футбольный.(это и будет полиморфизм) а вот если он пнет оба мяча ногой(с одинаковой силой), а они полетят по разному - это и будет полиморфизм. т.е. игрок видит мяч, бьет одинаково - а летит мяч по разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:38:04 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaприпустим футболист, и мяч разное объекты... продолжай, я заинтригован... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:39:11 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNт.е. игрок видит мяч, бьет одинаково - а летит мяч по разному. Мячи разной массы и упругости летят по разному. Масса и упругость - свойства. Это очень не показательный пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:42:32 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, на данном этапе я специально окончил свою мысль потому что я понял что чего то мне не хватает что бы понять более четко что есть что...ведь я не знаю что такое интерфейс в правильном понимании) а то что я понял это то что... у мяча есть отдельный интерфейс(который позволит определить как он будет лететь...)и у игрока который позволит ему определить какой мяч выбрать(если футболист то футбольный а баскетболист-баскетбольный).... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:48:12 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
BlazkowiczZyK_BotaNт.е. игрок видит мяч, бьет одинаково - а летит мяч по разному. Мячи разной массы и упругости летят по разному. Масса и упругость - свойства. Это очень не показательный пример. было бы "правильнее" сделать свойствами. но кстати, у понятия "футбольный мяч" есть ограничения на свойства, которые не позволят сделать его идентичным "баскетбольному" хотя про показательность примера спорить не буду. я его не с нуля придумал, а приведенный адаптировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:49:14 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
я так понял выбрал тяжелый пример...а можете дать ссылку на более простой или сами описать....P/s только желательно что бы это была не машина)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:50:10 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaа то что я понял это то что... у мяча есть отдельный интерфейс(который позволит определить как он будет лететь...) нет. интерфейс - как раз не позволти. как он будет лететь - зависит от "реализации", которая у футбольного и баскетбольного - отличны. а интерфейс, это то- что с мячом можно делать. интерфейс задается абстрактному понятию "мяч". например, то что мяч можно пнуть. а вот как он поведет себя, если его пнуть - и определяем в конкретных реализациях. но тут уже выше сказали, что аналогия с мячами - очень не показательна. нужно другую сочинить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:51:59 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaя так понял выбрал тяжелый пример...а можете дать ссылку на более простой или сами описать....P/s только желательно что бы это была не машина)))) не тяжелый, а неподходящий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:52:26 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenyaя так понял выбрал тяжелый пример...а можете дать ссылку на более простой или сами описать....P/s только желательно что бы это была не машина)))) http://docs.oracle.com/javase/tutorial/java/concepts/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:53:09 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenya, если баскетбольным - буду играть баскетболисты(руками), а футбольным - футболисты(ногами) то здесь общего интерфейса нет, а значит они и не должны быть наследниками мяча, и никакого полиморфизма мы не наблюдаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 19:53:38 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, вот вот...просто это меня и завело в дебри...я просто сталкивался с наследованием уже...припустим машина наследовалась от машины(получала свойства МАРКУ, ОБЪЕМ ДВИГАТЕЛЯ...)и наследовало методы(движение вперед и назад)...и все это было наследованием...ну когда я прочел о полиморфизме у меня все представление сломалось.Я начал понимать что методы должны быть полиморфизмом....)и окончательно запутался..( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 20:10:20 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
goodbenya.Я начал понимать что методы должны быть полиморфизмом....)и окончательно запутался..( методы должны быть полиморфными(т.е. реализацией некого интерфейса). вот тебе пример из жизни: шарикавая и геливая ручки. у них есть идентичный интерйес - корпус ручки, но пишут они благодаря разным физ законом, да и результат на бумаге немного отличный. то пользователь(человек пейсатель) может даже не задумываться какая у не го ручка, шарикавая или гелевая), он будет делать точь-вточь те же движения кистью. вот это и будет полиморфизм. хотя все аналогии натянуты, и к этой можно придраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 20:44:55 |
|
||
|
Как понять трех китов :)
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, спасибо....ну это именно то что я тоже думал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2012, 21:16:37 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=309&tid=2132576]: |
0ms |
get settings: |
17ms |
get forum list: |
19ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
47ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
102ms |
get tp. blocked users: |
3ms |
| others: | 392ms |
| total: | 621ms |

| 0 / 0 |
