/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /* Example7_4.cs illustrates member hiding */ using System; // declare the MotorVehicle class class MotorVehicle { // declare the fields public string make; public string model; // define a constructor public MotorVehicle(string make, string model) { Console.WriteLine("In MotorVehicle constructor"); this.make = make; this.model = model; Console.WriteLine("this.make = " + this.make); Console.WriteLine("this.model = " + this.model); } // define the DisplayModel() method public void DisplayModel() { Console.WriteLine("In MotorVehicle DisplayModel() method"); Console.WriteLine("model = " + model); } } // declare the Car class (derived from MotorVehicle) class Car : MotorVehicle { // hide the base class model field public new string model; // define a constructor public Car(string make, string model) : base(make, "Test") { Console.WriteLine("In Car constructor"); this.model = model; Console.WriteLine("this.model = " + this.model); } // hide the base class DisplayModel() method public new void DisplayModel() { Console.WriteLine("In Car DisplayModel() method"); Console.WriteLine("model = " + model); base.DisplayModel(); // calls DisplayModel() in the base class } } public class Example7_4 { public static void Main() { // create a Car object Console.WriteLine("Creating a Car object"); Car myCar = new Car("Toyota", "MR2"); Console.WriteLine("Back in Main() method"); Console.WriteLine("myCar.make = " + myCar.make); Console.WriteLine("myCar.model = " + myCar.model); // call the Car object's DisplayModel() method Console.WriteLine("Calling myCar.DisplayModel()"); myCar.DisplayModel(); } }