spacer

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

home / experts / javascript / column110


JScript .NET, Part IV: Inheritance

Java Developer (IL)
Next Step Systems
US-IL-Chicago

Justtechjobs.com Post A Job | Post A Resume
Developer News
OpenOffice 3.2 Lands Amid Critical Changes
Red Hat, IBM Firmly in KVM Virtualization Camp
Red Hat Talks Up Open Source Cloud Plans


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


The Network for Technology Professionals

Search:

About Internet.com

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

webref The latest from WebReference.com Browse >
Are Google's Language Translation Web Services Ready for Prime Time? · Installing and Using Meeplace, the Business Review CMS · Sending an HTML and Plain Text E-newsletter with ASP.NET, Part 2
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Top 10 Threats to Wireless Security · Poll: UC Uptake on the Rise · Review: Fluke AirCheck Wi-Fi Tester 1.0


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