BaseClass2.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApp1
  7. {
  8. internal class BaseClass2
  9. {
  10. protected string str;
  11. public BaseClass2(string str)
  12. {
  13. this.str = str;
  14. }
  15. //virtual - разрешение на переопределение метода
  16. public virtual void Show()
  17. {
  18. Console.WriteLine("Базовый класс");
  19. Console.WriteLine($"Строка: {str}");
  20. }
  21. }
  22. internal class NewClass1 : BaseClass2
  23. {
  24. protected int num;
  25. public NewClass1(string str, int num) : base(str)
  26. {
  27. this.num = num;
  28. }
  29. //Переопределение метода
  30. public override void Show()
  31. {
  32. Console.WriteLine("Производный класс 1");
  33. Console.WriteLine($"Строка: {str}");
  34. Console.WriteLine($"Число: {num}");
  35. }
  36. }
  37. internal class NewClass2 : BaseClass2
  38. {
  39. protected char ch;
  40. public NewClass2(string str, char ch) : base(str)
  41. {
  42. this.ch = ch;
  43. }
  44. public override void Show()
  45. {
  46. Console.WriteLine("Производный класс 2");
  47. Console.WriteLine($"Строка: {str}");
  48. Console.WriteLine($"Символ: {ch}");
  49. }
  50. }
  51. }