Given a relatively simple problem —involving numbers or an array, say— that is amenable to a recursive solution, be able to describe such a solution. (See Lab #11.)
Given a relatively simple problem about lists, develop a Java method that uses the methods in the PositionalListWithCursors and PositionalListCursor interfaces to solve it. (See Lab #9.)
A similar effect (of producing objects of the same class having different behaviors) can be achieved by using an instance variable that provides some particular functionality (e.g., comparison, classification) as described in a Java interface (e.g., java.util.Comparator). (See Generic Comparator-based Sorting in Java. Indeed, this is usually a better approach than using extension.