Object-Oriented Programming

Object-Oriented Programming

https://en.wikipedia.org/wiki/Object-oriented_programming

  1. Gang of four design patterns
  2. Core J2EE Patterns
  3. Abstraction

Fundamental concepts

Object-oriented programming (OOP) revolves around these fundamental concepts

  1. Encapsulation
  2. Inheritance
  3. Polymorphism
  4. Abstraction

These principles allow developers to create well-structured, modular, reusable, and maintainable code by organizing it around objects and their interactions.

What is the difference between Inheritance and Polymorphism?

At the minimum, we should know the following.

  1. class, object (and the difference between the two)
  2. instantiation
  3. method (as opposed to, say, a C function)
  4. virtual method, pure virtual method
  5. class/static method
  6. static/class initializer
  7. constructor
  8. destructor/finalizer
  9. superclass or base class
  10. subclass or derived class
  11. inheritance
  12. encapsulation
  13. multiple inheritance (and give an example)
  14. delegation/forwarding
  15. composition/aggregation
  16. abstract class
  17. interface/protocol (and different from abstract class)
  18. method overriding
  19. method overloading (and difference from overriding)
  20. polymorphism (without resorting to examples)
  21. is-a versus has-a relationships (with examples)
  22. method signatures (what’s included in one)
  23. method visibility (e.g. public/private/other)