illustrates member hiding

image_pdfimage_print

   

/*
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();

  }

}