JScript .NET, Part V: Polymorphism: The Object Type - Doc JavaScript | WebReference

JScript .NET, Part V: Polymorphism: The Object Type - Doc JavaScript

JScript .NET, Part V: Polymorphism

The Object Type

When a new class inherits from a base class, it gets all the base's members. You cannot get rid of these members. You can do one of the three: accept, hide, or override them. The default is to accept them. You accept them by refraining from their redefinition in the derived class. Simply put, do not define a derived class's member with the same name as a base class's member. When you do redefine a base member, you override the base class's member by default; this is how you override a base class. You can reflect the override by adding override to the member definition, as we have shown in Column 110. When you override a member, the behavior of both base objects and derived objects change. They all sport the new behavior. When you want to change the behavior of derived objects and keep the original behavior of base objects, mark your derived members with hide. The base members are hidden from the derived members (with the same name, of course). We have covered how to use the hide modifier in Column 110.

Every class inherits from a base class. This statement is true because all classes are implicitly derived from the Object class. The following definition of class Foo:

class Foo {/* members should go here */}

is identical to this alternate definition:

class Goo extends Object {/* members should go here */}

The Object class includes three properties and five methods. These are the properties:

And these are the methods:

So, every class supports these 8 members by default. You don't have to do anything specific to inherit them. When defining a new class, you can accept these members, override them, or hide them.

Next: How to use derived objects with base methods

Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: June 3, 2002
Revised: June 3, 2002

URL: http://www.webreference.com/js/column111/2.html