Advertisement
fcamuso

abstract & sealed

Dec 23rd, 2020
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ClassiAstratte
  5. {
  6.  
  7.   abstract class Figura
  8.   {
  9.     protected Figura() { }
  10.  
  11.     public abstract ConsoleColor Colore { get; set; }
  12.  
  13.     //abstract protected int spessoreTratto = 0; NO
  14.  
  15.     public abstract void Disegna();
  16.   }
  17.  
  18.   abstract class Quadrato : Figura
  19.   {
  20.     public override ConsoleColor Colore { get; set; } = ConsoleColor.Black;
  21.    
  22.     //public override void Disegna()
  23.     //{
  24.     //  Console.WriteLine("Disegna Quadrato");
  25.     //}
  26.   }
  27.  
  28.   class QuadratoFilled : Quadrato
  29.   {
  30.     public override void Disegna()
  31.     {
  32.       Console.WriteLine("Disegna QuadratoFilled");
  33.     }
  34.   }
  35.  
  36.   class Cerchio : Figura
  37.   {
  38.     public override ConsoleColor Colore { get; set; } = ConsoleColor.Red;
  39.     public double Raggio { get; set; } = 0;
  40.  
  41.     public override void Disegna()
  42.     {
  43.       Console.WriteLine("Disegna Cerchio");
  44.     }
  45.  
  46.     public double crf() => 2 * Math.PI * Raggio;
  47.   }
  48.  
  49.   class Figura2
  50.   {
  51.     virtual public void Disegna() { }
  52.   }
  53.  
  54.   sealed class Quadrato2 : Figura2
  55.   {
  56.     public override void Disegna()
  57.     {
  58.       Console.WriteLine("Disegna Quadrato");
  59.     }
  60.  
  61.   }
  62.  
  63.   class QuadratoFilled2 : Quadrato2 //NO se la classe madre intera è sealed
  64.   {
  65.     //public override void Disegna()
  66.     //{
  67.     //  Console.WriteLine("Disegna QuadratoFilled");
  68.     //}
  69.   }
  70.  
  71.   class Cerchio2 : Figura2
  72.   {
  73.     public double Raggio { get; set; } = 0;
  74.  
  75.     public override void Disegna()
  76.     {
  77.       Console.WriteLine("Disegna Cerchio");
  78.     }
  79.  
  80.     public double crf() => 2 * Math.PI * Raggio;
  81.   }
  82.  
  83.  
  84.   class Program
  85.   {
  86.     static void Main(string[] args)
  87.     {
  88.  
  89.      //Figura f = new Figura(); NO, astratta
  90.  
  91.       List<Figura> disegno = new List<Figura>()
  92.          { new Cerchio(),
  93.            /* new Quadrato(), non se Quadrato è abstract */  
  94.            new QuadratoFilled()
  95.          };
  96.  
  97.       foreach (Figura f in disegno) f.Disegna();
  98.  
  99.     }
  100.   }
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement