Поповнення та зниження:
Оновлення: Кастинг з похідного класу на базовий клас Даундастінг: Кастинг з базового класу на похідний клас
Давайте розберемо те саме як приклад:
Розглянемо два класи Shape як мій батьківський клас і Circle як похідний клас, визначені таким чином:
class Shape
{
public int Width { get; set; }
public int Height { get; set; }
}
class Circle : Shape
{
public int Radius { get; set; }
public bool FillColor { get; set; }
}
Оновлення:
Shape s = new Shape ();
Коло c = s;
І c, і s посилаються на одне і те ж розташування пам'яті, але обидва вони мають різні види, тобто, використовуючи посилання "c", ви також можете отримати доступ до всіх властивостей базового класу та похідного класу, але, використовуючи посилання "s", ви можете отримати доступ до властивостей єдиного батьківського класу.
Практичним прикладом оновлення є клас Stream, який є базовим класом усіх типів пристрою для зчитування потоків .net framework:
Пристрій читання StreamReader = новий StreamReader (новий FileStreamReader ());
тут FileStreamReader () оновлено для відтворення Streadm.
Даундайтинг:
Фігура s = нове коло (); тут, як пояснено вище, подання s є єдиним батьком, щоб зробити його як для батьків, так і для дитини, нам потрібно його знизити
var c = (Коло) s;
Практичним прикладом Downcasting є клас кнопок WPF.
Employee emp= mgr;
повинно вистачити.