Concepts in Object Oriented Programming
Defining object oriented programming introduces a number of powerful concepts that make it different from the pure modular approach. The principal OOP concepts are:
Objects - They represent real or abstract objects, with a name, which have well-defined responsibilities. They exhibit well-defined behavior. They have a well-defined interface, usually one that is as uncomplicated as possible. Objects are self-consistent, coherent, and complete; plus they are not particularly complex or large. This makes the objects easier to manage.
Classes - A class is the template that specifies the characteristics that belong to a certain type of objects. Objects are instances of classes. Classes define the object's interface to the outside world. What is an interface? Well, for example, take the buttons in front of your television set; they create an interface between you and the electrical wiring located on the other side of the plastic casing. When you press the "power" button you interface to turn the TV on or off. Classes do similar things with objects; they form an interface with other programming objects.
Encapsulation - means that only the necessary interface is exposed to the outside world. The client part of the object does not need to know the internal details of those objects to which it has interactions.
Abstraction and Generalization - Abstraction means that you try to generalize problems and their solutions. With generalization you first ignore complex details and simplify the problem.
Inheritance - a way of describing a class by showing how it differs from another class. A pet is a class and a dog and cat are objects in that class.
Polymorphism (many-forms) - comes with inheritance. This is possible because all child classes have a relationship with the parent class. For example, if we say a dog is a pet, a dog can do all of the things that a pet can do. Polymorphism is also known as dynamic binding.
Source: Basic Object Oriented Concepts
Lesson: Object-Oriented Programming Concepts