In class hierarchy design, it's better to define higher-level (base/abstract) classes first to establish the structure and interface before creating lower-level (derived/concrete) implementations. Top-down design ensures proper inheritance relationships and that derived classes have a consistent foundation to build upon.