Что бы понять зачем вам это нужно, проведите паралели с реальной жизнью. Если человека нанимают на работу, то подразумевают что у него 2 руки, 2 ноги, 1 голова (не обязательно) и он может выполнить определенную работу. Это означает что работатадель знает, с каким типом ему придется работать. Работадателя не интересуют типы, которых он не знает, т.к. он не знает ничего об их поведении и т.п. В программировании то же самое. Зачем вам типы (классы) о которых вы ничего не знаете? Какой смысл от пятой руки, если никто о ней не знает? Вам нужны не классы, а экземпляры или определенное поведение. А это реализуется конкретным классом, а не "неизвестным". "Имя класса" в вашем случае есть ничто иное, как атрибут конкретного класса.