>>subMap()メソッドがSortedMapインターフェースを実装したオブジェクトを返す
なるほど、そう考えれば少し分かってきた。じゃあ、このSortedMap smって
どんなクラスなんだろう?と思って以下のコードを追加してみた。

System.out.println("tm.getClass() = " + tm.getClass().toString());
System.out.println("sm.getClass() = " + sm.getClass().toString());

結果:
tm.getClass() = class java.util.TreeMap
sm.getClass() = class java.util.TreeMap$SubMap

なんだこのTreeMap$SubMapって...