The Common Lisp Object System, a powerful system for
object-oriented programming which forms part of
Common Lisp.
CLOS differs from most other object-oriented programming
environments in the following ways:
- It offers multiple dispatch, or "multimethods".
- Therefore, methods are not considered to live within classes; they are conceptually grouped into generic functions instead.
- CLOS doesn't provide encapsulation; that is considered to be the job of a different part of Common Lisp, the package system.
- Inheritance can cause methods to be combined together in arbitrarily complicated ways at the discretion of the programmer, and not merely overridden by one another.
CLOS has multiple inheritance and, unofficially, a meta-object protocol.
All Wikipedia text
is available under the
terms of the GNU Free Documentation License