Java Reference
In-Depth Information
Overriding a Method Definition
The definition of an inherited method can be changed in the definition of a derived
class so that it has a meaning in the derived class that is different from what it is
in the base class. This is called overriding the definition of the inherited method.
For example, the methods toString and equals are overridden (redefined) in the
definition of the derived class HourlyEmployee . They are also overridden in the class
SalariedEmployee . To override a method definition, simply give the new definition
of the method in the class definition, just as you would with a method that is added in
the derived class.
overriding
Overriding a Method Definition
A derived class inherits methods that belong to the base class. However, if a derived class
requires a different definition for an inherited method, the method may be redefined in the
derived class. This is called overriding the method definition.
The final Modifier
If you add the modifier final to the definition of a method, it indicates that the method
may not be redefined in a derived class. If you add the modifier final to the definition of a
class, it indicates that the class may not be used as a base class to derive other classes. We
will say more about the final modifier in Chapter 8.
Changing the Return Type of an Overridden Method
In a derived class, you can override (change) the definition of a method from the base
class. As a general rule, when overriding a method definition, you may not change the
type returned by the method, and you may not change a void method to a method
that returns a value, nor a method that returns a value to a void method. The one
exception to this rule is if the returned type is a class type, then you may change the
returned type to that of any descendent class of the returned type. For example, if a
function returns the type Employee ( Display 7.2 ), when you override the function
definition in a derived class, you may change the returned type to HourlyEmployee
( Display 7.3 ), SalariedEmployee (Display 7.5), or any other descendent class of
the class Employee . This sort of changed return type is known as a covariant return
type and is new in Java version 5.0; it was not allowed in earlier versions of Java.
Earlier versions of Java allowed absolutely no changes to the returned type. We will
give complete examples of changing the returned type of an overridden method in
Chapter 8 . Here we will just outline an example .
covariant
return type
 
Search WWH ::




Custom Search