Виртуальный класс (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);
}
}
}
Вывод программы:

