abstraction c#
using System; namespace abstract_class { public abstract class Polygon { // abstract method 'howmanysides()' public abstract void howmanysides(); } public class Triangle : Polygon { public override void howmanysides() { Console.WriteLine("Triangle: I have 3 sides"); } } public class Square : Polygon { public override void howmanysides() { Console.WriteLine("Square I have 4 equal sides with 90 degree right angles"); } } public class Pentagon : Polygon { public override void howmanysides() { Console.WriteLine("Pentagon: I have 5 sides"); } } public class Hexagon : Polygon { public override void howmanysides() { Console.WriteLine("Hexagon: I have 6 sides"); } } public class Quadrilateral : Polygon { public override void howmanysides() { Console.WriteLine("Quadrilateral: I have 4 sides"); } } public class Rectangle : Polygon { public override void howmanysides() { Console.WriteLine("Rectangle: I have 4 sides, 2 short and 2 long"); } } class Program { static void Main(string[] args) { Console.WriteLine(""); Polygon p; p = new Triangle(); p.howmanysides(); p = new Square(); p.howmanysides(); p = new Pentagon(); p.howmanysides(); p = new Hexagon(); p.howmanysides(); p = new Quadrilateral(); p.howmanysides(); p = new Rectangle(); p.howmanysides(); Console.WriteLine(""); } } }
Triangle: I have 3 sides Square I have 4 equal sides with 90 degree right angles Pentagon: I have 5 sides Hexagon: I have 6 sides Quadrilateral: I have 4 sides Rectangle: I have 4 sides, 2 short and 2 long