Differences between Procedural and Object Oriented Programming

Procedural Programming Object Oriented Programming
Examples: C, Algol, FORTRAN, Pascal, Basic, etcExamples: Java, C++, C#, Python, PHP, JavaScript
Overloading not possibleOverloaind possible
No access specifierPrivate, public, protected access specifier
No data hidingProvides data hiding
No inheritanceProvides inheritance
Based on unreal worldBased on real world
Uses the concept of procedure abstraction.Uses the concept of data abstraction.
Code reusability absent.Code reusability present.
Follows a top-down approach.Follows a bottom-up approach.
No virtual classes.Virtual classes in inheritance.