Object Oriented Programming

Classes

Methods

Properties

Encapsulation

Private

Public

Protected

Tools

Interfaced

Abstract classes

Static properties and methods

Design Patterns

Composition, inheritance and delegation

Polymorphism

Open Recursion

Documentation

Solid principles

Single responsibility principle

Open/closed principle

Interface segregation principle

Dependency inversion principle

Test Driven Development

Composition, inheritance and delegation

Doccoments