Я почти уверен, что вы не можете сделать это по двум причинам:
- Вы не можете повторять переменные экземпляра (
int x, double x
). - Это довольно схематичнонаследуют от одного класса, но затем хотят изменить тип переменных его экземпляра.
Если вы не хотите создавать отдельные классы для этих вариантов использования, возможно, будет работать абстрактный суперкласс.Если бы я больше рассказал о том, что вы пытаетесь решить, я мог бы быть немного более полезным в этой области.
Похоже, что вы действительно хотите, это параметрический полиморфизм, которого Objective C неслужба поддержки.Некоторые классы Какао, такие как семейство NSNumber
, используют абстрактный суперкласс со многими конкретными подклассами, предположительно с различными макетами переменных экземпляра (как вы описали в своем вопросе).Затем логика соответствующим образом разделяется между абстрактным и конкретным.Это шаблон проектирования Cluster компании Cocoa, который является своего рода ослабленным специальным ответом на параметрический полиморфизм языков, таких как C ++ и Haskell.