Dr_Max_Experience

Virtual method

Jan 6th, 2022 (edited)
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.43 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ООП
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             NPC[] npcs = new NPC[] { new NPC(), new Farmer(), new Warrior(), new Child() };
  10.  
  11.             foreach (var npc in npcs)
  12.             {
  13.                 npc.ShowDescription();
  14.                 Console.WriteLine("-----------");
  15.             }
  16.         }
  17.     }
  18.  
  19.     class NPC
  20.     {
  21.         public virtual void ShowDescription() //Виртуальный метод
  22.         {
  23.             Console.WriteLine("Я NPS");
  24.         }
  25.     }
  26.  
  27.     class Farmer : NPC //Есть доступ к виртуальному методу
  28.     {
  29.         public override void ShowDescription() //Обращается к виртуальному методу
  30.         {
  31.             base.ShowDescription(); //Вызывает виртуальный метод у базового класса
  32.             Console.WriteLine("Я фермер");
  33.         }
  34.     }
  35.  
  36.     class Warrior : NPC //Есть доступ к виртуальному методу
  37.     {
  38.         public override void ShowDescription() //Обращается к виртуальному методу
  39.         {
  40.             Console.WriteLine("Я воин"); //НЕ вызывает виртуальный метод у базового класса
  41.         }
  42.     }
  43.  
  44.     class Child : NPC //Есть доступ к виртуальному методу
  45.     {
  46.  
  47.     }
  48. }
Add Comment
Please, Sign In to add comment