spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / javascript / column111


JScript .NET, Part V: Polymorphism

Sr. Web Developer
mediabistro.com
US-NY-New York

Justtechjobs.com Post A Job | Post A Resume
Developer News
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?


Writing a Polymorphic Function

On Page 4 we saw how to use a polymorphic method, ToString(), and how to redefine it for a new class, Base. Of course, you can define your own polymorphic methods. All you need to do is define your objects in the most basic type, which is Object. All types are derived from Object, so you can pass an integer, a double, and an object of any class to an argument of type Object.

The function WriteNameValue() accepts a name and a value as parameters, and prints them. The name is a string and the value is defined of type Object. In this way, the value parameter can be substituted with any type. The implementation of this utility function is based on the system's polymorphic method, ToString(). You can write your own implementation, making sure you handle each and every type correctly. Here is the function:

function WriteNameValue(name : String, value : Object) : void {
  print(name + value.ToString());
}

The rest of the code is very similar to that of Page 4. Instead of calling ToString(), we call WriteNameValue(). Here is the code listing:

// compile with: jsc writename.js

function WriteNameValue(name : String, value : Object) : void {
  print(name + value.ToString());
}

 var o : Object = new Object();
 var i : int    = 9;
 var d : double = 5.8;
 var b : Base = new Base();
 WriteNameValue("o: ", o);
 WriteNameValue("i: ", i);
 WriteNameValue("d: ", d);
 WriteNameValue("b: ", b);
 
 class Base {
  protected var i : int = 5;
  public function ToString() : String {
    print("i is " +  i);
	return("foo");
  }
}

And here is the Command Prompt window, showing the code again (writename.js), the jsc compiler's log messages, and the output of writename.exe:


Next: How to implement a polymorphic interface

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Rolling Out Your Own HTML Application Version Control · HTML 5: Client-side Storage · Working with Ajax Server Extensions
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Wi-Fi Product Watch, November 2009 · Chip Market Recovering From '08 Collapse · Low-Cost Tools to Kickstart Your New Business


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/5.html