The Root of All Classes: Object
All C# classes, of
any type, are treated as if they ultimately derive from
System.Object
. Interestingly, this includes value
types.
A base class is the immediate
“parent” of a derived class. A
derived
class can be the base to further derived classes, creating an
inheritance “tree” or hierarchy. A
root class is the topmost class in an inheritance hierarchy. In C#,
the root class is Object
. The nomenclature is a
bit confusing until you imagine an upside-down tree, with the root on
top and the derived classes below. Thus, the base class is considered
to be “above” the derived class.
Tip
C and C++ programmers take note: C# uses single inheritance with a monolithic class hierarchy: every class inherits from a base class of Object, and multiple inheritance is not possible. However, C# interfaces provide many of the benefits of multiple inheritance. (See Chapter 8 for more information.)
Object
provides a number of methods that
subclasses can and do override. These include Equals( )
to determine if two objects are the same;
GetType( )
, which returns the type of the object
(discussed in Chapter 8); and ToString( )
, which returns a string to represent the current object
(discussed in Chapter 10). Table 5-1 summarizes the methods of
Object
.
Table 5-1. The methods of Object
Method |
What it does |
---|---|
|
Evaluates whether two objects are equivalent. |
|
Allows objects to provide their own hash function for use in collections (see |
Get Programming C#, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.