Apex OOPs Concepts
Object means a real world / run time entity such as marker, car, table, chair etc. Object-Oriented Programming is a methodology or way to design a program using classes and objects. It eases the software development and its maintenance by providing some beautiful concepts as followed.
Any real world entity that has state and behavior is known as an object. For example: marker, book, table, chair, mouse, car etc.
Technically, we can say object is an instance of a class or in other words you can say it is an implementation of a class.
Class is a concept or prototype or template i.e. it is a logical entity.
Technically, we can say that we create an individual object of a class.
It is a binding of code and data together into a single unit known as encapsulation. For example, a capsule, it is wrapped with different types medicines into single unit.
An apex class is the example of encapsulation.
One name many forms known as polymorphism. Real world example of polymorphism: A person at the same time can have different characteristic. Like a woman at the same time is a mother, a wife, an employee and a daughter etc.
In Apex, we use method overloading and method overriding to achieve polymorphism.
When one class acquires all the properties and behaviors of super/parent class it is known as inheritance. It provides code reusability as well as we can used to achieve runtime polymorphism.
Note: Without inheritance we cannot achieve runtime polymorphism.
Hiding internal complexity and showing functionality is known as abstraction. For example: Car Drive, we don’t know the internal processing.
In Apex, we use abstract class and interface to achieve abstraction.