4 Principles

link

  1. Encapsulation

  2. Abstraction

  3. Inheritance

  4. Polymorphism

Encapsulation

The hiding of data implementation by restricting access to accessors and mutators.

Abstraction

Representation of data in which the implementation details are hidden.

For examplem, the development of classes, objects, types in terms of their interfaces and functionality, instead of their implementation details.

Abstraction is used to manage complexity (decompose complex systems into smaller components).

Inheritance

The ability to derive new classes from existing classes.

Polymorphism

Polymorphism describes a pattern in object oriented programming in which classes have different functionality while sharing a common interface.

Eg. shape object.

Read more

http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)