Я немного не понимаю.... Мы же изначально создаём: Person person = new (Dancer or Player)(); Следовательно person уже ссылается на нужный класс(Player or Dancer); Зачем тогда нужно приведение?