ПредишенСледващото

Описание: обсъдено в предишната лекция на концепцията за наследяване позволява използването на методи и основни класове на данни, но има два вида наследство - наследството на статичен и динамичен (статично и динамично свързване на методи).

Размер на файла: 41.49 KB

изтеглен на работа: 3-ма души.

Ако тази работа са достигнали долната част на страницата има списък с подобни дела. Също така, можете да използвате бутона за търсене

Лекция принцип 10 полиморфизъм

10.1 Концепцията за полиморфизъм

Разглеждане в предишната лекция на концепцията за наследяване позволява използването на методи и основни класове на данни, но има два вида наследяване # 150; статична и динамична наследство (статични и динамични свързващи методи).

Статично наследство е наследството на всички комуникации, които се образуват по време на съставянето на програмата и в действителност, определени в повечето класове описват структурата.

Dynamic наследство и свързаните с полиморфизъм собственост, се предполага, че някои връзки се образуват по време на програмата.

Полиморфизмът е разнообразие от форми на реализация на подобни методи във веригата на наследствени класове.

свойства Прилагане полиморфизъм с помощта на специални методи на виртуално и така наречените абстрактни базови класове.

Помислете за концепцията за абстрактни базови класове.

За да се получи от предимствата на ООП клас наследство, разработчиците започнаха да се създадат базови класове, включително всички възможни техники за обработка на данни от един набор обект, но в този случай, базови класове обикновено не са включени елементи от данни.

Например, при създаване на база класа "геометрични форми" може да включва методи за намиране на зоната или обем. Естествено, ако получени клас е клас "точка" или клас "сегмент", такива техники за тези обекти са безсмислени.

Базовите класове, за които създаването на обекти не е възможно или не да има смисъл, започва да се нарича абстрактен базов клас. Абстрактни базови класове се използват само за производство на потомци. Като правило, само съвкупности са в техните методи, които всяко от децата ще осъзнаят, по свой собствен начин. Такива методи са абстрактни базови класове са предназначени за несъществуващи # 150; виртуални предмети данни (т.е. елементи на бъдещите класовете данни от веригата за наследството).

Методите са предназначени за несъществуващи, виртуални елементи бъдещи класове данни по веригата на наследството, станал известен като виртуални методи.

За виртуалните методи в C # език използва специална инструкция (специален термин # 150; виртуален), което означава, че методът е виртуална. Например:

виртуален публичен двойно ploc ()

По този начин по време на изпълнението на програмата за всеки създаден обект показалка е допълнително включен в таблицата, създадена ВМТ.

Ако получени клас има своя собствена реализация на един виртуален метод със същото име, в това, този метод трябва да бъде обявена като заместител или припокриване на метод атрибут регулиране. Например,

отмени обществена двойно ploc ()

Замяна на виртуалния метод във всяка една от извлечения клас не е необходимо. Ако той изпълнява действието костюми извлечения клас, този метод просто наследи.

Замяна виртуален метод трябва да имат един и същ набор от параметри, като метод на едноименната базов клас.

принцип полиморфизъм се основава на "припокриващи" методи виртуална абстрактно база клас приоритет пред метод. В допълнение, всеки получен клас може да има свой собствен индивидуален форма на наследствен изпълнение на виртуални или алтернативни мерки.

В този случай, собственост на полиморфизъм # 150; това е възможност за различните класове обекти, свързани с наследството, да реагират по различен начин, когато се отнася до една и съща (по име) на базовия клас виртуална функция.

Полиморфизъм е преведена от гръцки, което означава "много форми", които в този случай означава "едно обаждане # 151; много методи. "

Описвайки препоръчва базовия клас виртуална определи като тези методи, които са произтекли класове трябва да се прилагат по различен начин. Ако всички класове на йерархията на метода ще се извършва по същия начин, по-добре е описан като конвенционалния метод.

10.2 Пример статични методи наследство

Развиваме верига наследява класа на прости геометрични форми, основни точка и кръг.

Като основа вземе клас, без да има области, които са само с една виртуална функция изчислителна района и "чисто виртуална функция" отпечатването.

Пример статичен наследство # 150; нормалната създаване обект, задача на полета за данни (или координатите на координатите на мястото на центъра на окръжността и радиус) на някои случайни стойности в диапазона от 0 до 100 и отпечатване на тези стойности.

Изходния код на програмата:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!