June 17, 2002 - Using final
June 17, 2002 Using final Tips: June 2002
Yehuda Shiran, Ph.D.
|
final
modifier. We begin with definitions of a base class and a derived class:
class FirstBase {
final function pitcher() { print("I am a pitcher on first base"); }
function hitter() { print("I am a hitter on first base"); }
}
class SecondBase extends FirstBase {
function pitcher() { print("I am a pitcher on second base"); }
function hitter() { print("I am a hitter on second base"); }
}
Now, we define a variable, player1
, of the derived class SecondBase
, and we create it with the derived class default constructor:
var player1 : SecondBase = new SecondBase;
We then assign the new object to the variable player2
, defined as of the base class type:
player2 : FirstBase = player1;
The following code:
player2.pitcher();
player2.hitter();
yields the next two lines:
I am a pitcher on first base
I am a hitter on second base
You can see that the pither()
method is that of the base class, while the hitter()
method is of the derived class. The base class method won because of its final
modifier. The derived class method won because overriding is the default, and the base class function was not marked with final
.To learn more about JScript .NET, go to Column 110, JScript .NET, Part IV: Inheritance.