Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: наследование и полиморфизм
 
 автор: asker   (17.03.2009 в 13:49)   письмо автору
 
 

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

Кто может обьяснить нормально в чем разница между полиморфизмом и наследованием ?

  Ответить  
 
 автор: _deniska_   (17.03.2009 в 14:06)   письмо автору
 
   для: asker   (17.03.2009 в 13:49)
 

При наследовании можем передаеть дочернему классу весь функционал базового, то есть все методы и свойства обьявленные в базовом классе будут и у дочернего. А с помощью полиморфизма мы можем расширить или переопределить фугкционал базового класса. Вроде как то так. А вообще на этом сайте есть статья посвященная ООП, так вот там очень подробно и доступно все расписано

  Ответить  
 
 автор: cheops   (17.03.2009 в 14:21)   письмо автору
 
   для: asker   (17.03.2009 в 13:49)
 

Полиморфизм - это вид наследования, при котором вы наследникам диктуете интерфейс - они не могут менять его по своей прихоти, они вынуждены подчиняться интерфесу, который заложен в базовом классе. Это гарантирует, что все наследники будут обладать методами с одними и теми же названиями - т.е. их можно будет обрабатывать автоматически.

  Ответить  
 
 автор: asker   (17.03.2009 в 16:13)   письмо автору
 
   для: cheops   (17.03.2009 в 14:21)
 

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

  Ответить  
 
 автор: Loki   (17.03.2009 в 17:39)   письмо автору
 
   для: asker   (17.03.2009 в 16:13)
 

Полиморфи́зм (в языках программирования) — взаимозаменяемость объектов с одинаковым интерфейсом.

Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования [1].

Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».

Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).

Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение. Внешне общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (типами аргументов и результатов). Внутренняя общность есть одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (функций, операций).


http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования