<< Chapter < Page | Chapter >> Page > |
Listing 1 defines a class named A, which explicitly extends the class named Object .
(Recall that classes extend Object by default. It is not necessary to explicitly show that a class extends Object . I showed that here simply to remind you that all classes in C# are rooted in the class named Object .)
Listing 1 . Definition of class A.
using System;
class A : Object {//This class is empty
}//end class A
The most important thing to note about the class named A is that it does not override any of the methods that it inherits from the classnamed Object .
Therefore, it inherits the default version of the method named ToString from the class named Object .
(We will see an example of the behavior of the default version of that method shortly.)
Listing 2 defines the class named B . This class extends the class named A .
Listing 2 . Definition of class B.
class B : A {
public override String ToString() {return "ToString in class B";
}//end overridden ToString()}//end class B
Of particular interest, (for purposes of this module) , is the fact that the class named B overrides the inherited ToString method.
It inherits the default version of the ToString method, because its superclass named A , which extends Object , does not override the ToString method.
The purpose of the ToString method is to return a reference to an object of the class String that represents an object instantiated from a class that overrides the method.
Here is part of what Microsoft has to say about the ToString method:
"This method returns a human-readable string that is culture-sensitive. For example, for an instance of the Double class whose value is zero, the implementation of Double.ToString might return "0.00" or "0,00" depending on the current UI culture."
The ToString method can be overridden in a subclass to return values that are meaningful for that type. Again, according to Microsoft:
"For example, the base data types, such as Int32, implement ToString so that it returns the string form of the value that the object represents."
The default implementation of the ToString method, as defined in the Object class, returns the fully qualified name of the type of the object.
I didn't override the ToString method in the class named A , but I did override it in the class named B , which is a subclass of A .
The behavior of my overridden version of the method in the class named B returns a reference to a String object, containing text that indicates that the overridden version of the method in theclass named B has been executed.
The reference to the String object returned by the overridden version of the method will prove useful later when we need todetermine which version of the method is actually executed.
Listing 3 shows the definition of a class named C, which extends the class named B , and overrides the method named ToString again.
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?