Я думаю, что это вполне обоснованный аргумент в сообщении Питера Халлама о том, что вы не ожидаете, что оператор switch
будет отличаться, если вы измените порядок вещей, поэтому он действительно полезен, только если одна ветвь может быть действительной одновременно, тогда как с Type
один класс - это всегда несколько разных типов в цепочке наследования.
Никто не мешает вам делать это с помощью цепочки if ... else, где вы ожидаете, что она будет оцениваться в том порядке, в каком вы ее поместили.