What is the difference between OOP and Functional programming

ParameterObject Oriented ProgrammingFunctional Programming
DefinitionA programming paradigm based on the concept of objects which contains data in the form of fields called attributes and code in the form of methodsA programming paradigm based on the concept of procedure calls
Paradigm
ApproachBottom-up ApproachTop-down Approach
Data ControlIn OOP data in each function is controlled on its ownIn POP every function has different data so no control over it.
EmphasisEmphasis on objectsEmphasis on functions
CommunicationObjects communicate with each other by message passingParameters communicate with each other by parameter passing
InheritanceInheritance is supported by three modes : private, protected and publicInheritance is not supported
Access ControlAccess control is done with access modifiersAccess modifiers is not supported
Data HidingData can be hidden is using EncapsulationNo data hiding. Data is accessible globally
Overloading or PolymorphismOverloading functions, constructors and operators are possibleOverloading is not possible
SecurityMore secured language because external functions can’t access another data.Due to global data, it is less secured language
Code reusabilityExisting code can be reusedNo code reusability
Problem SolvingUsed for solving big problemsNot used for solving big problems
ExampleC++, Java,C#, PHP, PythonCOBOL, C, FORTRAN, BASIC, PASCAL

What is the difference between overloading and overriding in OOPs?

DescriptionOverloadingOverriding
AchievedIt is achieved by having different methods with the same name and different signatureIt is achieved by redefining the method in the sub class. The class is originally defined in the super class.
SameThe methods names are the same. Only the signature varies.The method definition (name) including the signature are similar. It is only redefined. But the implementation of the method is changed.
RelationshipThe relationship is between the methods in the same class.The relationship is between the methods in the super and sub class.
ABAPIt is not explicitly supported in SAP ABAP. But it can be implicitly implemented through the concept of OPTIONAL keyword in method definition.This overriding can be explicitly implemented in SAP ABAP. The REDEFINITION keyword is used in the method definition of sub class.
ExampleA movie can be dubbed in different languages. The title and the characters are similar. Only the parameters such as Dialogue Delivery are different. Thus the movie is overloaded in different languages.A movie can be remaked. Its parameters are similar. But the storyline and its content can be changed according to the viewers. Thus the movies are redefined.