Как я могу сделать все эти классы подклассами общего типа, чтобы моя сигнатура метода принимала все эти различные типы?
Просто создайте абстрактный класс, MySuperClass
, этот класс наследуется всеми классами, которые вы хотите передать в метод. Этот суперкласс обладает общими функциями и атрибутами.
Другой способ, если ваши подклассы могут расширять другой класс; или среди класса нет ничего общего (кроме того факта, что все они передаются в ваш метод), вы можете иметь интерфейс, скажем MySuperClass
(в идеале, мне нравится интерфейс, начинающийся с I, например IMySuperClass
).
Я не хочу перегружать метод.
Когда у вас есть готовый суперкласс или интерфейс, сигнатура вашего метода будет выглядеть примерно так: myMethod(Param1 val1, MySuperClass myObj, Param3 val3)
.
Simple.