- Mixins / Metaclasses
- Dynamic Typing & Duck Typing
hides internal implementation level details and exposes only the relevant details of the class to the users..
combines data (fields) and logically-related operations (methods). Abstraction is achieved through encapsulation.
is the characteristic of being able to assign a different meaning or usage to something in different contexts - specifically, to allow an entity such as a variable, a function, or an object to have more than one form. There are several different kinds of polymorphism.
- Compile-time polymorphism - The call for the same method behaves differently based on the provided arguments.
- Function Overloading - methods with the same name but with different numbers of arguments or types of arguments.
- Operator Overloading -same operator having different meanings in different context(eg. +)
- Runtime polymorphism
Mixins / Metaclasses
Dynamic Typing & Duck Typing