Base Class Inherited Members Masking In Derived Class in C#

  1. using System;  
  2. class Time {  
  3.     public byte hour {  
  4.         set;  
  5.         get;  
  6.     }  
  7.     public byte minute {  
  8.         set;  
  9.         get;  
  10.     }  
  11.     public void SetTime(byte hour, byte minute) {  
  12.         this.hour = hour;  
  13.         this.minute = minute;  
  14.     }  
  15.     public void DisplayTime() {  
  16.         Console.Write(hour + ":" + minute);  
  17.     }  
  18. }  
  19. class NewTime: Time {  
  20.     new public byte hour {  
  21.         get;  
  22.         set;  
  23.     }  
  24.     new public byte minute {  
  25.         get;  
  26.         set;  
  27.     }  
  28.     public byte second {  
  29.         set;  
  30.         get;  
  31.     }  
  32.     public void SetTime(byte hour, byte minute, byte second) {  
  33.         this.hour = hour;  
  34.         this.minute = minute;  
  35.         this.second = second;  
  36.     }  
  37.     new public void DisplayTime() {  
  38.         Console.Write(hour + ":" + minute + ":" + second);  
  39.     }  
  40. }  
  41. class UsingTime {  
  42.     static void Main(String[] arg) {  
  43.         Console.WriteLine("Base Time Class");  
  44.         Time hmt = new Time();  
  45.         hmt.SetTime(12, 22);  
  46.         Console.Write("Time of HMT: ");  
  47.         hmt.DisplayTime();  
  48.         Console.WriteLine("\n\nDerived Time Class");  
  49.         NewTime sonata = new NewTime();  
  50.         Console.Write("Time of SONATA: ");  
  51.         sonata.SetTime(10, 15, 30);  
  52.         sonata.DisplayTime();  
  53.     }  
  54. }  
Output
 
Base Time Class:
Time of HMT: 12:22
Derived Time Class
Time of SONATA: 10:15:30