19821

Віртуальні методи. Абстрактні класи

Доклад

Информатика, кибернетика и программирование

Абстрактний клас в обєктноорієнтованому програмуванні базовий клас який не передбачає створення екземплярів. Абстрактні класи реалізують на практиці один з принципів ООП поліморфізм. Абстрактний клас може містити і не містити абстрактні методи і властивості...

Украинкский

2015-01-12

17.72 KB

8 чел.

Абстрактний клас в об'єктно-орієнтованому програмуванні - базовий клас, який не передбачає створення екземплярів. Абстрактні класи реалізують на практиці один з принципів ООП - поліморфізм. Абстрактний клас може містити (і не містити [1]) абстрактні методи і властивості. Абстрактний метод не реалізується для класу, в якому описаний, однак повинен бути реалізований для його неабстрактних нащадків. Абстрактні класи являють собою найбільш загальні абстракції, тобто мають найбільший обсяг і найменше зміст.
В одних мовах створювати екземпляри абстрактних класів заборонено, в інших це допускається (наприклад, Delphi), але звернення до абстрактного методу об'єкта цього класу в процесі виконання програми призведе до помилки. У багатьох мовах допустимо оголосити будь-який клас абстрактним, навіть якщо в ньому немає абстрактних методів (наприклад, Java), саме для заборони створення екземплярів.Абстрактний клас можна розглядати в якості інтерфейсу до сімейства класів, породженому ним, але, на відміну від класичного інтерфейсу, абстрактний клас може мати певні методи, а також властивості.
Абстрактні методи часто є і віртуальними, у зв'язку з чим поняття «абстрактний» і «віртуальний» іноді плутають.

Віртуальний метод (віртуальна функція) - в об'єктно-орієнтованому програмуванні метод (функція) класу, який може бути перевизначений в класах-спадкоємців так, що конкретна реалізація методу для виклику буде визначатися під час виконання.Таким чином, програмісту необов'язково знати точний тип об'єкта для роботи з ним через віртуальні методи: достатньо лише знати, що об'єкт належить класу або спадкоємцю класу, в якому метод оголошений.
Віртуальні методи - один з найважливіших прийомів реалізації поліморфізму. Вони дозволяють створювати загальний код, який може працювати як з об'єктами базового класу, так і з об'єктами будь-якого його класу-спадкоємця. При цьому базовий клас визначає спосіб роботи з об'єктами і будь-які його спадкоємці можуть надавати конкретну реалізацію цього способу. У деяких мовах програмування, наприклад в Java, немає поняття віртуального методу, дане поняття слід застосовувати лише для мов, в яких методи батьківського класу не можуть бути перевизначені за замовчуванням, а тільки за допомогою деяких допоміжних ключових слів. У деяких же (як, наприклад, в Python), всі методи - віртуальні.
Базовий клас може і не надавати реалізації віртуального методу, а лише декларувати його існування. Такі методи без реалізації називаються «чистими віртуальними» (переклад англ. Pure virtual) або абстрактними. Клас, у якому хоча б один такий метод, теж буде абстрактним. Об'єкт такого класу створити не можна (в деяких мовах допускається, але виклик абстрактного методу призведе до помилки).Спадкоємці абстрактного класу повинні надати реалізацію для всіх його абстрактних методів, інакше вони, в свою чергу, будуть абстрактними класами.
Для кожного класу, що має хоча б один віртуальний метод, створюється таблиця віртуальних методів. Кожен об'єкт зберігає покажчик на таблицю свого класу. Для виклику віртуального методу використовується такий механізм: з об'єкта береться покажчик на відповідну таблицю віртуальних методів, а з неї, за фіксованим зсуву, - покажчик на реалізацію методу, використовуваного для даного класу. При використанні множинного спадкування або інтерфейсів ситуація дещо ускладнюється за рахунок того, що таблиця віртуальних методів стає нелінійною.


 

А также другие работы, которые могут Вас заинтересовать

29942. Эвакуация населения из зон чрезвычайных ситуаций. Виды эвакуации 38 KB
  Получив распоряжение на эвакуацию граждане должны подготовить средства индивидуальной защиты личные вещи документы паспорт военный билет диплом об образовании трудовую книжку пенсионное удостоверение свидетельства о браке и рождении детей постельные принадлежности необходимые медикаменты запас продуктов питания на 23 суток. 2 вопрос: Средства индивидуальной защиты: противогаз респиратор ватномарлевая повязка. Их предназначение и использование Ответ: К средствам индивидуальной защиты органов дыхания относятся...
29943. Единая государственная система предупреждения и ликвидации чрезвычайных ситуаций (РСЧС). Основные цели и задачи РСЧС по защите населения от чрезвычайных ситуаций 30.5 KB
  Основные цели и задачи РСЧС по защите населения от чрезвычайных ситуаций Ответ: РСЧС создана для прогнозирования предотвращения и ликвидации различных ситуаций обеспечения постоянной готовности к ним органов государственного управления сил и средств предназначенных для этого. Основные задачи РСЧС: разработка и выполнение законов и других правовых документов по защите населения и территорий от чрезвычайных ситуаций; подготовка и выполнение целевых научнотехнических программ направленных на предупреждение аварий и катастроф...
29944. Понятие «дорога», ее составные части. Меры безопасного поведения пешехода на улицах и дорогах 38.5 KB
  Все кровотечения подразделяются на: венозные когда кровь темного цвета непрерывно и медленно вытекает из раны; артериальные когда кровь алого цвета из глубокой раны выбрасывается пульсирующей струей; капиллярные когда кровь сочится по всей поверхности раны; смешанные когда есть признаки артериального и венозного кровотечения. Способы остановки кровотечения: пальцевое прижатие несколько выше раны артериального сосуда находящегося близко к коже. Это дает возможность быстро остановить кровотечение примерно на 35 мин;...
29945. Современный общественный транспорт и его характеристика. Правила безопасного поведения пассажира в общественном транспорте 40 KB
  Правила безопасного поведения пассажира в общественном транспорте Ответ: Общественный транспорт это автобусы троллейбусы трамваи и метро. Правила безопасного поведения пассажиров при пользовании этими видами транспорта: ожидать маршрутные транспортные средства следует только на остановках; садиться в транспорт можно только после его полной остановки; запрещается стоять на выступающих частях и подножках транспортных средств прислоняться к дверям отвлекать водителя разговорами во время...
29946. Регулирование и обеспечение безопасности дорожного движения. Понятие «водитель». Правила безопасного вождения велосипеда (мопеда) 40.5 KB
  Правила безопасного вождения велосипеда мопеда Ответ: Организация и регулирование дорожного движения возложены на Государственную инспекцию безопасности дорожного движения ГИБДД. Обеспечение безопасности дорожного движения это деятельность направленная на предупреждение причин возникновения дорожнотранспортных происшествий и снижение тяжести их последствий. Оно достигается: содержанием дорог в соответствии с установленными требованиями и обустройством их объектами сервиса исправным техническим...
29947. Обеспечение пожарной безопасности в местах проживания 40.5 KB
  Обязанности граждан по соблюдению мер пожарной безопасности Ответ: Причинами пожаров в жилых производственных и служебных помещениях чаще всего являются неисправности электросети и электроприборов утечка газа загорание бытовых приборов оставленных без присмотра под напряжением применение самодельных и неисправных отопительных приборов использование бензина керосина и других горючих веществ для разжигания печей оставление открытыми топок шалости детей с огнем неосторожность при курении и множество...
29948. Основные характеристики городского и сельского жилищ; особенности их жизнеобеспечения. Общие меры пожарной безопасности при эксплуатации электрических, газовых приборов и отопительных печей 46.5 KB
  Правила пожарной безопасности при эксплуатации электробытовых приборов: нельзя оставлять без присмотра включенные в сеть электронагревательные приборы радиоприемники и телевизоры; запрещается использовать неисправные рубильники розетки и другие электроустановочные устройства; нельзя применять самодельные и неисправные электронагревательные приборы нестандартные предохранители и другие средства защиты от перегрузки и короткого замыкания; не следует накрывать и оборачивать светильники и лампы бумагой тканью и другими...
29949. Особенности города как среды обитания. Зоны повышенной опасности в городе. Службы, обеспечивающие безопасность города, и правила их вызова 34.5 KB
  Службы обеспечивающие безопасность города и правила их вызова Ответ: Особенности города как среды обитания: наличие большого количества различных видов транспорта и высокая интенсивность дорожного движения; как правило разноплановая застройка от одноэтажных зданий до высотных сооружений; наличие различных предприятий в том числе и потенциально опасных; сосредоточение на ограниченной площади множества коммуникаций электросети водопровод канализация телефонные линии газопровод. Безопасность города обеспечивается...
29950. Организация отдыха на природе и соблюдение необходимых мер безопасности во время его проведения 34 KB
  2 вопрос: Терроризм: основные понятия и признаки Ответ: Терроризм в соответствии с Уголовным кодексом РФ совершение взрыва поджога или иных действий создающих опасность гибели людей причинения значительного имущественного вреда либо наступления иных общественно опасных последствий если эти действия совершены в целях нарушения общественной безопасности устрашения населения либо оказания воздействия на принятие решений органами власти а также угроза...