June 17, 2002 - Using final | WebReference

June 17, 2002 - Using final

Yehuda Shiran June 17, 2002
Using final
Tips: June 2002

Yehuda Shiran, Ph.D.
Doc JavaScript

The following example demonstrates the usage of the 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.