<< Chapter < Page Chapter >> Page >

The class being extended or inherited from is often called the base class or the superclass . The new class is often called the derived class or the subclass .

What is inherited?

The subclass inherits the data representation and behavior of the superclass (and all of its superclasses) . However, the subclass can modify the behavior of inherited methods by overriding them, provided that theywere declared virtual by the original author. (That will be one of the topics in a future module on polymorphism.) The subclass can also add new data representation and behavior that is unique to itsown purposes.

The superclass remains viable

A program can instantiate objects of a superclass as well as instantiating objects of its subclasses.From a practical viewpoint, the superclass doesn't even know that it has been extended.

A hierarchy of classes

Inheritance is hierarchical. By that, I mean that a class may be the subclass of one (and only one) other class and may be the superclass of one or more other classes.

The overall inheritance hierarchy has a single root in the System.Object class. In other words, the System.Object class is the common ancestor for every other class.

Members of the System.Object class

The System.object class defines the following eight methods , which are inherited by every other class:

  • Equals - Overloaded. Determines whether two Object instances are equal.
    • Equals(Object) - Determines whether the specified Object is equal to the current Object.
    • Equals(Object,Object) - Determines whether the specified Object instances are considered equal.
  • Finalize - Allows an Object to attempt to free resources and perform other cleanup operations before the Object isreclaimed by garbage collection.
  • GetHashCode - Serves as a hash function for a particular type.
  • GetType - Gets the Type of the current instance.
  • MemberwiseClone - Creates a shallow copy of the current Object.
  • ReferenceEquals - Determines whether the specified Object instances are the same instance.
  • ToString - Returns a String that represents the current Object.

Because these eight methods are inherited by every other class, they are always available for you to use in your code. (Possibly the most frequently usedof these methods is the ToString method.)

The Button class

Moving down a single path in the inheritance hierarchy, we find that the family tree for the Button class in the System.Windows.Forms namespace is as follows:

  • System. Object
  • System.MarshalByRefObject
  • System.ComponentModel.Component
  • System.Windows.Forms.Control
  • System.Windows.Forms.ButtonBase
  • System.Windows.Forms. Button

If you were to examine the documentation for each of the classes in the Button class' family tree, you would probably find that each class is more specialized than its superclass. For example, the Object class is very generic and the Button class is very specialized. Generally speaking, classes become more specialized as you move down thehierarchy beginning with the Object class.

The Object class is the default superclass

When you define a new class, it becomes an immediate subclass of the Object class by default unless you cause your new class to extend some other class.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask