<< 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 .
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.
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.
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.
The System.object class defines the following eight methods , which are inherited by every other class:
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.)
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:
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.
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.
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?