Различията отменят метод за припокриване - стека преливане на Руски

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

Ето защо, в C # се препоръчва да се методи за получени класове, които да заместват методи базов клас, използва новата ключова дума. Ако сте пропуснали да направите това, компилаторът ще ви предупреди, че се крие една и съща функция със същия подпис в базовия клас.

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

Замяна се отнася и за виртуални функции. В получен клас виртуална функция е засегнато. За да направите това във функцията на базовия клас трябва да се дефинира с ключовата дума виртуалното (или абстрактно), и по новия клас да се преодолеят, е необходимо да посочите друг замяна на ключови думи.

Това означава, че разликата е в тези две изречения. В първия случай, припокриването

и във втория случай имаме, когато императивни

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

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

Императивно виртуален метод базов клас - метод за създаване на генерираните клас има точно същия подпис (и маркирани специална ключова дума). При този метод за обвързване на виртуалната + неговото предефиниране действа късно свързване: метод повикване чрез позоваване на базовия клас може да доведе до призив за претоварен метод.

Флаг отменя невиртуалните методи не съществуват.

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

Отговорено 9 '16 януари в 18:03

VladD
148k # 9679; 15 # 9679; 158 # 9679; 327

Припокриване на въпрос, както аз го разбирам - това име сенки. и не претоварване (висш). Тъй като C # не знае, но по мое мнение да се определи класа два метода със същото име и подпис невъзможно. - Павел Parshin 9 Януари '16 в 18:13