public class VectorEditor
public static void Main()
var objects = new GraphicsObject[] {
foreach(var obj in objects) obj.Draw();
Console.WriteLine("Posouvam prostredni objekt...");
Console.WriteLine("Menim polomer posledniho objektu (kruhu)...");
(objects[2] as Circle)?.Resize(-4);
foreach(var obj in objects) obj.Draw();
public class GraphicsObject {
public int X {get; protected set;}
public int Y {get; protected set;}
public GraphicsObject(int x, int y) {
public void Move(int dx, int dy) {
public virtual void Draw() {
public class Square : GraphicsObject {
public Square(int dx, int dy) : base (dx,dy) {}
public override void Draw() {
Console.WriteLine($"Ctverec: [{X}; {Y}]");
public class Circle : GraphicsObject {
protected set => radius = Math.Max(value,0);
public Circle(int dx, int dy, int r) : base (dx,dy) { Radius = r; }
public virtual void Resize(int dr) {
public override void Draw() {
Console.WriteLine($"Kruh: [{X}; {Y}; r = {Radius}]");