Keeping the promises you inheritadvanced
Anywhere the parent works the child must work too — and a subclass that compiles perfectly can still break the first caller who relied on something the parent quietly promised.
A square is a rectangle. The code disagrees, and only a shared test shows why.
The same expectations hold for every exported type, and both still total correctly.
Published in full, before you start — every point is one of these and there is nothing else. Each one runs your code; it is not a search for keywords.
Anywhere the parent works the child must work too — and a subclass that compiles perfectly can still break the first caller who relied on something the parent quietly promised.