spacer

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

home / experts / javascript / column110


JScript .NET, Part IV: Inheritance

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?


Abstract Classes

You need to mark class members that have no implementation with the abstract modifier. You also need to label a class containing such members as abstract. A class with abstract members cannot be instantiated with the new operator. You can derive both abstract and non-abstract classes from an abstract base class. Interfaces are implicitly abstract. They cannot be instantiated, and must be implemented by a non-abstract class. Therefore, you cannot mark interfaces and their members as abstract. You may not combine the abstract modifier with the other inheritance modifier, final (see Page 6). You may not combine either of these inheritance modifiers (abstract and final) with the static modifier.

The following example demonstrates the use of abstract classes. The polygon class is a generic class for all types of polygons. We define it as an abstract class because we want the implementation to be provided by the rectangle and square classes that extend the polygon class:

abstract class polygon {
  abstract function printCharacteristic();
}

class rectangle extends polygon {
  function printCharacteristic() {
    print("All my angles are 90 degrees and my
      opposite sides are equal");
  }
}
class square extends polygon {
  function printCharacteristic() {
    print("All my angles are 90 degrees and all
      my sides are equal");
  }
}

Let's define now two variables, shape1 and shape2, of type polygon, and instantiate them with the new operator:

var shape1 : polygon = new rectangle;
var shape2 : polygon = new square;

Let's print now their respective characteristics:

shape1.printCharacteristics();
shape2.printCharacteristics();

You should get the following statements:

All my angles are 90 degrees and my opposite sides are equal
All my angles are 90 degrees and all my sides are equal


Next: How to override base class methods

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: May 20, 2002
Revised: May 20, 2002

URL: http://www.webreference.com/js/column110/4.html