Below, we want to reuse the code in SList.insertFront, but we also need to adjust the tail reference. Insert at the front of the list. I lied when I said that we don't need to modify SList. One change is necessary. If they're declared protected, insertFront can access them because it's a method of TailList, which is a subclass of SList.
Subclasses can have subclasses.
Object is at the top of every class hierarchy. Here's where inheritance gets interesting. Any TailList can masquerade as an SList. Every TailList is an SList, but not every SList is a TailList. Your method now manipulates TailLists as well, with no changes.