Полиморфизм (информатика)

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Полиморфизм — концепция в объектно-ориентированном программировании, представляющая из себя возможность добавления в классы виртуальных методов, реализуемых в классах-потомках.

Классы, содержащие виртуальные методы, называют абстрактными.

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

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

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

Примеры[править]

В языке C#:

public class Renderable
{
 public abstract void render ();
}

public class Cube : Renderable
{
 public override void render ()
 {
  Graphics.RenderCube ();
 }
}

Источники[править]

  1. Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes, Essentials of Programming Languages, The MIT Press, 2001, ISBN 0-262-06217-8
 
Библиотека

Стандартная библиотекаПространство имёнФреймворкИнтерфейсAPI

Основные
термины

АлгоритмПсевдокодПерегрузка операторовВыражениеИнструкцияОперацияОтступКоличество строк кода

Подпрограмма

Соглашение об именованииМультиметодCallbackФункция высшего порядкаРекурсивная функцияОбобщённое программированиеОперандПараметрПолиморфизмПерегрузка процедур и функций

ООП

КлассКонструкторДеструкторИнкапсуляцияНаследованиеМножественное наследованиеМетодСборка мусораСсылка

Структуры
и типы данных

ДеревоСимвольный типЗаписьМножествоОчередьСписокСвязный списокСтекСвойствоСемафорМассивКучаАбстрактный тип данныхДинамический массив

Исходный
код

Категория Категория