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 |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access