Guest User

Untitled

a guest
May 24th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System;
  4.  
  5. public static class Program
  6. {
  7. public static void Main()
  8. {
  9. var dogs = new List<Dog>();
  10. dogs.Add(new Dalmatier());
  11. dogs.Add(new Terrier());
  12.  
  13. foreach (var dog in dogs)
  14. {
  15. dog.Bark();
  16. }
  17.  
  18. Console.WriteLine("");
  19. foreach(var dog in dogs)
  20. {
  21. dog.AngryBark();
  22. }
  23.  
  24. Console.WriteLine("");
  25. foreach(var dog in dogs)
  26. {
  27. dog.Sleep();
  28. }
  29.  
  30. Console.WriteLine("");
  31. foreach(var dog in dogs.OfType<Dalmatier>())
  32. {
  33. dog.Sleep();
  34. }
  35. }
  36. }
  37.  
  38. public abstract class Dog
  39. {
  40. /// <summary>
  41. /// Every dog Barks in a different way, abstract forces an implementation
  42. /// </summary>
  43. public abstract void Bark();
  44.  
  45. /// <summary>
  46. /// Default dogs do the same bark just twice in a row when they are angry
  47. /// </summary>
  48. public virtual void AngryBark()
  49. {
  50. Bark();
  51. Bark();
  52. }
  53.  
  54. /// <summary>
  55. /// All dogs have the same sleep sound, no virtual or abstract necessary.
  56. /// </summary>
  57. public void Sleep()
  58. {
  59. System.Console.WriteLine("Zzzzzzzz");
  60. }
  61. }
  62.  
  63. public class Dalmatier : Dog
  64. {
  65. public override void Bark()
  66. {
  67. System.Console.WriteLine("Waf");
  68. }
  69.  
  70. /// <summary>
  71. /// A Dalmatier makes a really weird sleep sound
  72. /// </summary>
  73. public new void Sleep()
  74. {
  75. System.Console.WriteLine("Grrnnnnrzzzz");
  76. }
  77. }
  78.  
  79. public class Terrier : Dog
  80. {
  81. public override void Bark()
  82. {
  83. System.Console.WriteLine("WOEF");
  84. }
  85.  
  86. /// <summary>
  87. /// An angry Terrier has a special bark
  88. /// </summary>
  89. public override void AngryBark()
  90. {
  91. System.Console.WriteLine("GRRRRRR WAF");
  92. System.Console.WriteLine("GRRRRRR WAF WAF");
  93. }
  94. }
Add Comment
Please, Sign In to add comment