lotus

previous page: 1.14) What Is Specialization/Generalization/Overriding? (Object-Oriented Technology)
  
page up: Object-Oriented Technology FAQ
  
next page: 1.16) Is A Class An Object? (Object-Oriented Technology)

1.15) What Is The Difference Between Object-Based And Object-Oriented? (Object-Oriented Technology)




Description

This article is from the Object-Oriented Technology FAQ, by Bob Hathaway rjh@geodesic.com with numerous contributions by others.

1.15) What Is The Difference Between Object-Based And Object-Oriented? (Object-Oriented Technology)

Object-Based Programming usually refers to objects without inheritance
[Cardelli 85] and hence without polymorphism, as in '83 Ada and Modula-2.
These languages support abstract data types (Adts) and not classes, which
provide inheritance and polymorphism. Ada95 and Modula-3; however, support
both inheritance and polymorphism and are object-oriented. [Cardelli 85, p481]
state "that a language is object-oriented if and only if it satisfies the
following requirements:

- It supports objects that are data abstractions with an interface of named
operations and a hidden local state.
- Objects have an associated type.
- Types may inherit attributes from supertypes.

object-oriented = data abstractions + object types + type inheritance

These definitions are also found in [Booch 91, Ch2 and Wegner 87].

[Coad 91] provides another model:

  Object-Oriented = Classes and Objects 
                    + Inheritance 
                    + Communication with messages

Stroustrup's first edition of [Stroustrup 91, '86 p. 37] defines object based
as: "... storing type identification in each object, brings us to a style of
programming often referred to as "object based"", which is quite different
from C+W's.

A more modern definition of "object-oriented" includes single-hierarchy
languages and perhaps object id's for unique objects. Object id's support the
modern notion of relocatable, persistent and distributed objects that can
even migrate across machines. Distributed Smalltalk's proxy objects [Kim 89,
ch 19 and Yaoqing 93] provide another example of a distributable and migratable
object facility. Separate type system support is another extension.

[Booch 94, 2.2] proposes 7 "Elements of the Object Model"; 4 major and 3 minor:
Major:
Abstraction
Encapsulation
Modularity
Hierarchy (Inheritance)
Minor:
Typing
Concurrency
Persistence

 

Continue to:













TOP
previous page: 1.14) What Is Specialization/Generalization/Overriding? (Object-Oriented Technology)
  
page up: Object-Oriented Technology FAQ
  
next page: 1.16) Is A Class An Object? (Object-Oriented Technology)