OOPS
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Mixins / Metaclasses
- Dynamic Typing & Duck Typing
- Bibliography
Abstraction
hides internal implementation level details and exposes only the relevant details of the class to the users..
Encapsulation
combines data (fields) and logically-related operations (methods). Abstraction is achieved through encapsulation.
Inheritance
Overriding
Polymorphism
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
- Overriding
Mixins / Metaclasses
Dynamic Typing & Duck Typing
Bibliography
- http://www.infoq.com/presentations/It-Is-Possible-to-Do-OOP-in-Java
- http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod