Information Technology Reference
In-Depth Information
unique but related objects with only a general understanding of how those types of
objects are to be accessed rather than requiring the specific knowledge of the
individual objects themselves.
2.5 Abstraction
Abstraction is a fundamental concept in object-oriented software engineering that
allows for the efficient management of complexity through the use of generaliza-
tion. It is the practice of separating those details of a situation that are significant to
the current purpose from those that are not, resulting in an abstraction of the
situation as a whole. Booch explains that ''an abstraction denotes the essential
characteristics of an object that distinguish it from all other kinds of objects and
thus provides crisply defined conceptual boundaries'' of that object (Booch 1994 ).
By this definition, an abstraction is a generalization of an object which includes
only those details necessary to define it and to differentiate it from other objects. It
describes the ''outside view'' of an object, and not the objects inner workings, or
encapsulated information. An object's abstraction is a simplified form of its original
self. It retains only those details required for accurate description and identification
of the object, but excludes all other nonessential information (Jia 2003 ).
The concept of abstraction is closely related to those of encapsulation and
information hiding. Essentially, the idea behind the use of an interface is to present
a view of an object that includes only the relevant and necessary details; an
abstraction of an object. Hiding the inner workings promotes economical use of
that object and aids in securing its internal integrity.
2.5.1 Abstract Classes
One of the most fundamental forms of abstraction in object-oriented software
engineering is the use of abstract classes. Earlier, we briefly described an abstract
class as a class which is never meant to be instantiated, but rather exists to pass its
characteristics on to more highly specified versions of itself: its subclasses. We can
now identify an abstract class as an abstraction comprised of a set of highly gen-
eralized, often largely unspecified attributes and methods that are to be passed on to
subclasses which are then able to tailor those characteristics to their specific purposes
and inner workings. An abstract class is often the root of an inheritance hierarchy and
provides the initial interface for the classes that will be derived from it. The abstract
class, in this case a base class, expresses the functionality of all subclasses, but does
so with such a high level of abstraction that it is impossible to explicitly define all of
the implementations behind the interface (McGregor and Sykes 1992 ).
Though technically identical to other classes in that it consists of methods and
attributes which can be used to create instantiations of itself, a class is only
considered an abstract class when it is used only as a superclass for other classes,
Search WWH ::




Custom Search