<< Chapter < Page | Chapter >> Page > |
From this superclass, you might derive a Balloon class and an Airplane class.
The Balloon class
The Balloon class might add variables and methods dealing with passenger capacity and what makes it go up (helium, hydrogen, or hot air) . Objects of the Balloon class would then be able to deal with altitude, range, passenger capacity, and what makes it go up.
The Airplane class
The Airplane class might add variables and methods dealing with engine type (jet or propeller) and cargo capacity. Objects of the Airplane class could then deal with altitude, range, engine type, and cargo capacity.
Three types of objects
Having created this hierarchy of classes, you could instantiate objects of type Airship , Balloon , and Airplane with the objects of each type having variables and methods to deal with those specialcharacteristics of the flying machine indicated by the name of the class.
From the general to the specialized
You may have noticed that in this hierarchical class structure, inheritance causes the structure to grow in a direction from most general to morespecialized. This is typical.
C++ and some other object-oriented programming languages allow for multiple inheritance. This means that a new class can extend more than one superclass.This has advantages in some cases, but can lead to difficulties in other cases.
ActionScript 3 does not support multiple inheritance. Instead it supports a different mechanism called an interface that provides most of the benefits of multiple inheritance without most of the problems. I willexplain the ActionScript interface in a future lesson.
You will sometimes hear people speak of the ISA relationship when discussing OOP. The source of this terminology is more fundamental than you mayat first suspect.
Object-oriented designers often strive to use inheritance to model relationships where a subclass "is a kind of" the superclass. For example, a car "is a kind of" vehicle. A programmer "is a kind of" employee which in turn "is a kind of" person.
This relationship is called the ISA relationship. It's that simple.
Assume that you are working on children's games. You probably don't want to use buttons that cause your game program to look like a businessprogram. Instead, you might prefer to use bright-colored buttons that look like animals, flowers, or other child-pleasing objects such as butterflies andfrogs. (See Figure 1 for example.)
Characteristics in common
On the other hand, you want your buttons to exhibit all of the functionality of the standard ActionScript Button class. In other words, you want your new buttons to have many characteristics in common with the ActionScript Button class.
Inheritance to the rescue
As it turns out, this is easy to accomplish by defining an ActionScript class for each of your new button types.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?