Swift Object Oriented Programming

– UML
– Objects from the real world
– Structures, Classes and Instances
– Encapsulation
– Inheritance, Abstraction, and Specialization
– Contracting with protocols
– OOP and FP
– Extending and building OOP code
– Solid Principles
– Classes and Objects
– Virtual Function
– Pure Function
– Constructor and Destructor
– Function Overloading
– Encapsulation
– Inheritance
– Interface
– Polymorphism
– Constructor and Destructor
– Static Constructor
– Destructors
– Function Overloading
– Encapsulation
– Virtual Methods
– Hiding Methods
– Abstract Classes
– Sealed Classes
– Interface
– Partial Classes
– Parent Classes vs Child Classes
– Class Based V.S. Prototype Based
– Dynamic Dispatch
– Polymorphism
– Open Recursion
– Inheritance and behavioural subtyping
– Real world modeling and relationships
– Multiple Inheritance
– Virtual Inheritance
– Abstract Base Class
– Access Modifiers
– Abstract Class
– Abstract Method
– Reflection
– Mirroring
– Casting
– Dependency Injectionn
– Complexity Theory
– Static Type
– Hashing & Hashmaps
– Introspections
– Mixins
– Hoisting
– Derived Types
– Methods
– Lazy
– Generics
– NameSpaces
– Delegates
– Iterator
– Model Binding
– Recursion
– Serialization / Deserialization
– Dynamic Cast
– Override / Overload
– Parametric Polymorphism
– Polymorphic Association
– Anti Patterns
– Pointers
– Class/ Struct
– Hashable
– Type Safe Identifiers
– Copy On Write
– Optional Protocol Methods
– Deep Copy
– Shallow Copy
– Composition
– Law of demeter