Object-Oriented Programming
Table of Contents
Object-Oriented Programming
https://en.wikipedia.org/wiki/Object-oriented_programming
Fundamental concepts
Object-oriented programming (OOP) revolves around these fundamental concepts
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.
- class, object (and the difference between the two)
- instantiation
- method (as opposed to, say, a C function)
- virtual method, pure virtual method
- class/static method
- static/class initializer
- constructor
- destructor/finalizer
- superclass or base class
- subclass or derived class
- inheritance
- encapsulation
- multiple inheritance (and give an example)
- delegation/forwarding
- composition/aggregation
- abstract class
- interface/protocol (and different from abstract class)
- method overriding
- method overloading (and difference from overriding)
- polymorphism (without resorting to examples)
- is-a versus has-a relationships (with examples)
- method signatures (what’s included in one)
- method visibility (e.g. public/private/other)