, вызываемый метод - полиморфным методом, сам вызов - полиморфным вызовом. Вернемся к нашему примеру с классами Found, Derived, ChildDerived. Напомню, в родительском классе определен виртуальный метод VirtMethod и переопределен виртуальный метод ToString родительского класса object. Потомок класса Found - класс Derived переопределяет эти методы: public override void VirtMethod() { Console.WriteLine("Сын: " + this.ToString()); } public override string ToString() { return(String.Format("поля: name = {0}, credit = {1},debet ={2}",name, credit, debet)); } Потомок класса Derived - класс ChildDerived не создает новых полей. Поэтому он использует во многом методы родителя. Его конструктор состоит из вызова конструктора родителя: public ChildDerived(string name, int cred, int deb):base (name,cred, deb) {} Нет и переопределения метода Tostring, поскольку используется реализация родителя. А вот метод VirtMethod переопределяется: public override void VirtMethod() { |