Object Oriented Programming
Programming paradigms based on objects and classes.
topics
topic
Classes & Objects
Blueprint and instance, constructors, fields, methods, and the 'new' keyword.
topic
Inheritance
IS-A relationship, superclass/subclass, method overriding, and virtual dispatch.
topic
Polymorphism
Compile-time (overloading) vs runtime (overriding), subtype polymorphism, and interfaces.
topic
Encapsulation
Data hiding, access modifiers (public, private, protected), getters/setters, and invariants.
topic
Abstraction
Abstract classes, interfaces, information hiding, and contract-based design.
topic
Composition
HAS-A relationship, object composition, aggregation, and favoring composition over inheritance.
topic
SOLID Principles
Single responsibility, open/closed, Liskov substitution, interface segregation, dependency inversion.