logo
C#, 320 стр

Пример работы с полиморфным семейством классов

Классы семейства с полиморфными методами уже созданы. Давайте теперь в клиентском классе Testing напишем метод, создающий объекты наших классов и вызывающий методы классов для объектов семейства:

public void TestFoundDerivedReal()

{

Found bs = new Found ("father", 777);

Console.WriteLine("Объект bs вызывает методы класса Found");

bs.VirtMethod();

bs.NonVirtMethod();

bs.Analysis();

bs.Work();

Derived der = new Derived("child", 888, 555);

Console.WriteLine("Объект der вызывает методы класса Derived");

der.DerivedMethod();

der.VirtMethod();

der.NonVirtMethod();

der.Analysis();

der.Work();

ChildDerived chider = new ChildDerived("grandchild", 999, 444);

Console.WriteLine("Объект chider вызывает методы ChildDerived");

chider.VirtMethod();

chider.NonVirtMethod();

chider.Analysis(5);

chider.Work();

}

Результаты работы этого метода изображены на рис. 18.3.

Рис. 18.3.  Полиморфизм семейства классов

В последующих лекциях нам неоднократно встретятся более содержательные семейства классов с полиморфизмом, так что мы сумеем еще оценить мощь этого механизма ООП.