Всем привет!
Начал изучать ООП и появились вопросы. Вроде с наследованием и инкапсуляцией понятно, а вот с полиморфизмом не понятно. Можете объяснить для чего он нужен и что такое виртуальные методы?
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Client |
Сообщение
#1
|
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
Всем привет!
Начал изучать ООП и появились вопросы. Вроде с наследованием и инкапсуляцией понятно, а вот с полиморфизмом не понятно. Можете объяснить для чего он нужен и что такое виртуальные методы? |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Цитата тут мы просто используем метод предка, т.е. если у предка 100 полей, а у потомка 2 доп. поля то можно вызвать метод предка по обработке полей и добавить действия над другими двумя полями) Если ты про конструктор - то я тебе еще больше скажу: методы потомка ДОЛЖНЫ вызывать методы предка для инициализации/присвоения его (предка) полей, потому что никто не сможет инициализировать поле лучше, чем объект, в котором это поле добавляется.Цитата Что-то его нету Чего нет? Вылета? Это не проблема ООП, это проблема Турбо-Паскаля... Любой нормальный компилятор при попытке разыменовать нулевой указатель вылетит с 216-ой ошибкой... Турбо-Паскаль же ошибку замалчивает (спрашивается, ЗАЧЕМ? Программа-то не работает правильнее от того, что не происходит вылет), но при этом печатает тебе на экране откровенный бред. |
Client ООП 15.02.2009 20:00
volvo Ну, ты же здесь был: ООП. Объектно-ориентированное… 15.02.2009 20:19
Client В наследовании есть родитель и потомок, где потомо… 15.02.2009 20:27
volvo Не путай теплое с мягким... Наследование - это нео… 15.02.2009 21:01
Client O_o незнал.procedure proc(var obj: ta);
begin
ob… 15.02.2009 21:16
volvo Это вызов метода из непосредственного родителя... … 15.02.2009 21:37
Client uses crt;
type
ta = object
constructor init;… 15.02.2009 22:34
volvo Да, работает... Только некорректно это. При инициа… 15.02.2009 22:40
Client Инициализация?? т.е. присваивание полям значений и… 15.02.2009 22:43
volvo И то и другое... Вот, например, при инициализации … 15.02.2009 23:37
Client УРЯЯЯЯ!!! я понял) тут мы просто испол… 16.02.2009 20:22
Client Вроде понял) Спасибо за ответы! 17.02.2009 0:29
fedyafed Листинг программы от Дата 15.02.2009 17:01 содержи… 6.02.2011 14:25
volvo Никак не нужно настраивать, он по умолчанию прекра… 6.02.2011 14:49
Гость А overload и override компилятор не понимает(. Это… 6.02.2011 15:23![]() ![]() |
|
Текстовая версия | 27.12.2025 5:18 |