Illustrates member hiding : Derived Class « Class « C# / CSharp Tutorial






using System;

public class BaseClass
{
  public string lastName;
  public string firstName;

  public BaseClass(string lastName, string firstName)
  {
    Console.WriteLine("In BaseClass constructor");
    this.lastName = lastName;
    this.firstName = firstName;
    Console.WriteLine("this.lastName = " + this.lastName);
    Console.WriteLine("this.firstName = " + this.firstName);
  }

  public void DisplayfirstName()
  {
    Console.WriteLine("In BaseClass DisplayfirstName() method");
    Console.WriteLine("firstName = " + firstName);
  }

}

public class DerivedClass : BaseClass
{
  public new string firstName;

  public DerivedClass(string lastName, string firstName) : base(lastName, "Test")
  {
    Console.WriteLine("In DerivedClass constructor");
    this.firstName = firstName;
    Console.WriteLine("this.firstName = " + this.firstName);
  }

  public new void DisplayfirstName()
  {
    Console.WriteLine("In DerivedClass DisplayfirstName() method");
    Console.WriteLine("firstName = " + firstName);
    base.DisplayfirstName();
  }
}


class MainClass
{

  public static void Main()
  {
    Console.WriteLine("Creating a DerivedClass object");
    DerivedClass myDerivedClass = new DerivedClass("A", "B");

    Console.WriteLine("Back in Main() method");
    Console.WriteLine("myDerivedClass.lastName = " + myDerivedClass.lastName);
    Console.WriteLine("myDerivedClass.firstName = " + myDerivedClass.firstName);

    Console.WriteLine("Calling myDerivedClass.DisplayfirstName()");
    myDerivedClass.DisplayfirstName();

  }

}
Creating a DerivedClass object
In BaseClass constructor
this.lastName = A
this.firstName = Test
In DerivedClass constructor
this.firstName = B
Back in Main() method
myDerivedClass.lastName = A
myDerivedClass.firstName = B
Calling myDerivedClass.DisplayfirstName()
In DerivedClass DisplayfirstName() method
firstName = B
In BaseClass DisplayfirstName() method
firstName = Test








7.21.Derived Class
7.21.1.A base class reference can refer to a derived class object
7.21.2.Illustrates member hiding
7.21.3.Illustrates member accessibility in subclass
7.21.4.base and derived classes