KnowledgeShop

Learn & Share

OOPS

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