Object-oriented programming (OOP) concepts are something which are fundamentals of any Object-oriented programming language. These concepts give you the power to structure your code in such a way that it’s well optimized, reusable, efficient, future proof and much more.

The basic concepts of Object-oriented programming are,

  • Abstraction
  • Encapsulation
  • Dependency
  • Association
    • Composition
    • Aggregation
  • Inheritance
    • Extensibility
    • Run-Time Polymorphism (RTP)
      • Substitutability
      • Overriding
  • Packaging

Please note that these concepts are not language specific but applies to all object oriented programming languages.

These concepts are well explained in the below presentation.