Ключевые слова C#. virtual

Модификатор virtual используется для изменения объявлений методов, свойств, индексаторов и событий и разрешения их переопределения в производном классе. В переводе на понятный язык, это означает что методы уже реализованы, но если их реализация не нравится, то их можно переопределить, сделав свою реализацию.

В отличие от абстрактных методов, виртуальные методы уже содержат реализацию, которую можно использовать в наследуемых классах.

Модификатор virtual нельзя использовать с модификаторами staticabstract, private или override.

В примере ниже приведено использование виртуального метода.

Как видно, в наследуемом классе метод не определен, а используется напрямую в классе Program.

    abstract class Car
    {
        abstract public void drive();
        abstract public int Wheels { get; set; }

        public virtual double Square(int x, int y)
        {
            return x * y;
        }
    }

    class Opel : Car
    {
        int _wheels;
        public override int Wheels
        {
            get
            {
              return _wheels ;
            }
            set {
                _wheels = value;
            }
        }

        public override void drive()
        {
           // Console.WriteLine(_wheels);
        }
    }

    class Program
    {
        static void Main()
        {
            Opel myOpel = new Opel();
            myOpel.Wheels = 4;
            myOpel.drive();

            double sq = myOpel.Square(myOpel.Wheels, myOpel.Wheels);
            Console.WriteLine("Колес в квадрате будет: " + sq);

        }
    }

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика