Advertisement
Lauda

Untitled

Jun 20th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp1
  4. {
  5.     public class Program
  6.     {
  7.         public abstract class GenericDummy<T>
  8.         {
  9.             public abstract void Execute(T item);
  10.         }
  11.  
  12.         public abstract class Dummy
  13.         {
  14.             public abstract void Execute(object item);
  15.             public abstract void Execute(string item);
  16.         }
  17.  
  18.         // Class that overrides Execute method and has self overload of Execute method
  19.         internal class StringDummy : GenericDummy<string>
  20.         {
  21.             public void Execute(object item)
  22.             {
  23.                 Console.WriteLine("Object triggered");
  24.             }
  25.  
  26.             public override void Execute(string item)
  27.             {
  28.                 Console.WriteLine("String overload triggered");
  29.             }
  30.         }
  31.  
  32.         // Class that overrides both overload methods
  33.         internal class SimpleDummy : Dummy
  34.         {
  35.             public override void Execute(object item)
  36.             {
  37.                 Console.WriteLine("Object override overload triggered");
  38.             }
  39.  
  40.             public override void Execute(string item)
  41.             {
  42.                 Console.WriteLine("String override overload triggered");
  43.             }
  44.         }
  45.  
  46.         // Class that has simple overload methods
  47.         internal class SimpleOverload
  48.         {
  49.             public void Execute(object item)
  50.             {
  51.                 Console.WriteLine("Object triggered");
  52.             }
  53.  
  54.             public void Execute(string item)
  55.             {
  56.                 Console.WriteLine("String triggered");
  57.             }
  58.         }
  59.  
  60.         private static void Main()
  61.         {
  62.             new SimpleDummy().Execute(null);    // OUTPUT: String override overload triggered
  63.             new StringDummy().Execute(null);    // OUTPUT: Object triggered
  64.             new SimpleOverload().Execute(null); // OUTPUT: String triggered
  65.  
  66.             Console.ReadLine();
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement