Kotlin
☰
Toggle Theme
Kotlin OOP & Design Topics
Classes & Objects
What & How: Classes & Objects
Properties & Methods (getters / setters)
Constructors & Init Blocks
Nested & Inner Classes
Delegation & Object Declarations
Encapsulation & Visibility
What & How: Encapsulation
Visibility Modifiers (public, private, protected, internal)
Inheritance & Types
What & How: Inheritance
Types of Inheritance (single, multilevel, hierarchical, interface-based)
Overriding Methods & Properties
Calling Superclass / super Keyword
Abstraction & Interfaces
What & How: Abstract Classes
What & How: Interfaces & default methods
Polymorphism
What & How: Polymorphism
Static (Overloading) vs Runtime (Overriding)
Typecasting, Smart Cast, as / is in Kotlin
Generics & Variance
What & How: Generics
Variance: out / in / star projections
Reified Types & Inline Functions
Operator Overloading
What & How: Operator Overloading
Destructuring / componentN()
Delegation & Composition
What & How: Delegation (class-level)
Property Delegation (lazy, observable, vetoable)
Companion / Static Behavior
What & How: Companion Object
@JvmStatic & Java Interop
Sealed & Enum Classes
What & How: Sealed Classes / Interfaces
What & How: Enum Classes
Initialization Strategies
What & How: lateinit & lazy
Initialization Order (base, init blocks, derived)
Design & SOLID Principles
SOLID Principles in Kotlin
Common Design Patterns (Singleton, Factory, Observer…)
Testing & Quality
Testing OOP Classes & Interfaces
Mocking Singletons & Interfaces