Give a usecase
??? Я ожидаю, что вы попросите решение для конкретного случая использования.
Меняется тип объекта? Я думаю "Нет"
Но если вы хотите изменить часть объекта, его возможности или поведение могут быть связаны со слабой связью!
Например, ваш класс содержит член типа File_Saver. Существует открытый сеттер, принимающий любой экземпляр File_Saver, и вы можете добавить File_Saver_XML, File_Saver_PDF, ...
Это не обычный способ, но любая обработка внутри класса может быть выполнена 1-n слабо связанными обработчиками, которые вы можете обменять извне.
Расслабьтесь до вашего вопроса: вам нужна обертка + сеттер. : -)