Основы объектно-ориентированного программирования на языке C# book | Page 140

7 Класи Console.WriteLine(b.Demopoly(3.14)); // надруковано Inharitance class. Demo Poly double from B Console.WriteLine(c.Demopoly(3.14)); // надруковано Inharitance class. Demo Poly double from C Console.ReadKey(); } } } Не слiд плутати полiморфiзм iз сховуванням ( hide ) методу. Якщо необхiдно, щоб метод похiдного класу мав таке саме iм’я як i ме- тод базового класу, але не брав участь у вiртуалiзацiı̈, то можна за допомогою ключового слова new сховати реалiзацiю методу базового классу: using System; namespace HideTest { class A { public void Test() { Console.WriteLine("test from } } class B: A { public new void Test() { Console.WriteLine("test from } } class Program { static void Main(string[] args) { B test2 = new B(); test2.Test(); // A test1 = (A)test2; test1.Test(); // Console.ReadKey(); } } } Class A"); Class B"); test from Class B test from Class A В даному прикладi виклик методу Test() в операторi test2.Test() не має вiдношення до полiморфiзму. Сховування методiв використо- вується у випадку, коли, наприклад, у бiблiотецi є клас A i вiд нього спадкується клас B в якому описаний метод Test() . Припустимо, що виходить нова версiя класу A але вже цей клас теж мiстить в собi зовсiм iнший метод Test() . Тодi, щоб не було плутанини слiд метод Test() в класi B описати як new . Розглянемо ще випадки використання полiморфiзму. У наступно- 140