A base class reference can refer to a derived class object : Class Inheritance « Class Interface « C# / C Sharp






A base class reference can refer to a derived class object

A base class reference can refer to a derived class object
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// A base class reference can refer to a derived class object. 
 
using System; 
 
class X { 
  public int a; 
 
  public X(int i) { 
    a = i; 
  } 
} 
 
class Y : X { 
  public int b; 
 
  public Y(int i, int j) : base(j) { 
    b = i; 
  } 
} 
 
public class BaseRef { 
  public static void Main() { 
    X x = new X(10); 
    X x2;  
    Y y = new Y(5, 6); 
 
    x2 = x; // OK, both of same type 
    Console.WriteLine("x2.a: " + x2.a); 
 
    x2 = y; // still Ok because Y is derived from X 
    Console.WriteLine("x2.a: " + x2.a); 
 
    // X references know only about X members 
    x2.a = 19; // OK 
//    x2.b = 27; // Error, X doesn't have a b member 
  } 
}


           
       








Related examples in the same category

1.Inheritance 3Inheritance 3
2.Four layers of class hierarchyFour layers of class hierarchy
3.An example of inheritance-related name hidingAn example of inheritance-related name hiding
4.Using base to overcome name hidingUsing base to overcome name hiding
5.Call a hidden methodCall a hidden method
6.A multilevel hierarchy 1A multilevel hierarchy 1
7.Demonstrate when constructors are calledDemonstrate when constructors are called
8.illustrates inheritanceillustrates inheritance
9.Private field and public Property in inheritancePrivate field and public Property in inheritance
10.Illustrates versioningIllustrates versioning
11.Class Hierarchy testClass Hierarchy test
12.Class Hierarchy with two children classClass Hierarchy with two children class
13.A simple class hierarchyA simple class hierarchy
14.Pass a derived class reference to a base class referencePass a derived class reference to a base class reference
15.a multilevel hierarchya multilevel hierarchy
16.Build a derived class of Vehicle for trucksBuild a derived class of Vehicle for trucks