I am very new to programming and a bit confused from reading\hearing different conventions from different sources:
Does Object-oriented programming have 4 or 5 concepts?
As a newcomer, I understand these are the 5 concepts:
- Abstraction
- Inheritance
- Encapsulation
- Polymorphism
- Modularity
So how come I don't find a more "strict" definition and there seem to be several arrangements of these concepts out there?
Best Answer
The reason you find different explanations of what object-oriented programming means is because there is no single person or organization with the authority to formulate a strict universally-applicable definition.
Object-oriented programming is not an ISO standard or a scientific law. It is a philosophy. And as with all philosophies, there are all kinds of different interpretations and no interpretation is universally applicable. When you read a text which tells you what concepts you should follow when designing a software architecture, you should see this as a guideline based on the opinions the author formed during their professional experience, and not as an universal truth.