What Is Object Orientation?
Object-oriented programming is a precursor of what was later refined into data abstraction. The following features distinguish it from the latter:
- New terms for old concepts: types become "classes", routines become "methods", and libraries become "class libraries".
-
Objects can inherit behaviour from other objects. This is not just a simple matter of implementing a type in terms of other types; inheritance relationships are visible to the user of the type. This is supposed to aid in code reuse (any operations you define on the inherited "superclass" are automatically applicable to "subclasses" that inherit from it), except it doesn't.
- Information hiding based on type-based encapsulation. I have discussed elsewhere why this is the wrong way to do encapsulation.
Data abstraction is, on the whole, a much simpler idea than object orientation. It causes fewer complications in the language, is easier to get to grips with, and needs less run-time overhead to implement.
Created 1995 June 21.
Back to Programming Intro
Back to LDO's Home Page