As we have already stated in the introduction, the main OOP concepts are as follows:
- Object/Class: It defines a state (data) and behavior (methods) and holds them together
- Inheritance: It propagates behavior down the chain of classes connected via parent-child relationships
- Abstraction/Interface: It describes how the object data and behavior can be accessed. It isolates (abstracts) an object's appearance from its implementations (behavior)
- Encapsulation: It hides the state and details of the implementation
- Polymorphism: It allows an object to assume an appearance of implemented interfaces and behave as any of the ancestor classes