These puzzles target dispatch rules that break real UVM frameworks where most handles are typed as base classes. You are expected to distinguish static binding, dynamic dispatch, and constructor-chain behavior (`super.new`) without guessing.
1. Non-Virtual vs Virtual Through Base Handle [Easy]
2. Missing super.new with Required Base Args [Medium]
3. Virtual Call from Base Constructor [Hard]
4. Signature Mismatch Prevents Override [Medium]
5. Template Method with Non-Virtual Wrapper [Easy]
6. super Method Call in Override Chain [Hard]Work each puzzle before reading the solution: predict the exact output or answer, name the rule that governs it, then check yourself.
FORK/JOIN INTERVIEW CHEAT MAP
fork
task_a(); // 3 cycles
task_b(); // 1 cycle
join
--> parent waits for all children
fork ... join_any
--> parent continues after first child completes
fork ... join_none
--> parent continues immediately; children run detached
Use wait fork; later to synchronize detached threads.