The Root of All Types: Object
All C# classes, of any type, are treated as though 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++ 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 virtual methods that subclasses can and do override. These include Equals( ) to determine whether 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 Chapter 9) |
|
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