Object-oriented programming
"Object-oriented programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior."
Encapulation
The concept of declaring (state) variables that cannot be accessed directly by clients and can only be accessed and modified using functions. This helps in constraint access to variables but, at the same time, allows enough access to the class for taking action on it.
Polymorphism
"Poly means many and morph means forms...It means that a contracts in inheritance can be accessed using a common interface. It also means that multiple functions with same name can be defined and invokes using different objects."
C3 Linearization
AKA Method Resolution OrderΒ (MRO)
"C3 superclass linearization is an algorithm used primarily to obtain the order in which methods should be inherited in the presence of multiple inheritance." (more)