Encapsulation: encapsulate methods, attributes into classes and classes into package to hide information and integrity assurance.
Inheritance: Reuse the properties, methods of the class without having to rebuild.
Polymorphism: There is the same method but depending on the parameters passed or difference implementations that will do difference function. Polymorphism has two important concepts: Overriding and Overloading.
Abstraction: generalize something but don't go into it in detail.