Виртуальный класс (virtual) пример на C# (объектно-ориентированное программирование)
using System; class Figure { double x = 1; public virtual double X { get => x; set { // тернарная операция if (value > 0 && value < 50) { x = value; } } } public string Str { get; set; } public Figure(string str) { Str = str; } public virtual void Show() { Console.WriteLine(Str); } } class Quadrate : Figure { public override double X { get => base.X; set { if (value > 18 && value < 27) { base.X = value; } } } public string StrQuad { get; set; } // sealed запрещает переопределение в классе // переопределение свойств public Quadrate(string Str, string strquad):base(Str) { StrQuad = strquad; base.X = 20; } public override void Show() { //base.Show(); // линии Console.WriteLine($"С помощью {Str} можно начертить {StrQuad}"); } } namespace ConsoleApp1 { class Program { static void Main(string[] args) { Figure line = new Figure("Линия"); line.Show(); Console.WriteLine(line.X); Quadrate quaddraw = new Quadrate("Линии", "Квадрат"); quaddraw.Show(); Console.WriteLine(quaddraw.X); quaddraw.X =22; Console.WriteLine(quaddraw.X); quaddraw.X = 5; Console.WriteLine(quaddraw.X); } } }
Вывод программы: