En primer lugar, si usted está preocupado acerca de volver a la crianza de una clase, entonces usted está probablemente haciendo mal herencia. La herencia debe usarse para establecer relaciones "is-a", no simplemente para fomentar la reutilización del código. Si necesita volver a usar el código solo, considere usar delegación, en lugar de herencia. Supongo que podría introducir un tipo intermedio entre un subtipo y su padre, pero dejaría que esa posibilidad impulse mi diseño.
En segundo lugar, si necesita usar funcionalidades de la clase base pero ampliarlas Y el caso de uso requiere un método estático, entonces puede considerar usar alguna clase externa para mantener la funcionalidad. El caso clásico para esto en mi mente es el patrón de fábrica. Una forma de implementar el patrón Factory es a través de Factory Methods, un método estático en una clase que construye una instancia de esa clase. Por lo general, el constructor está protegido, por lo que el método de fábrica es la única forma de construir la clase desde el exterior.
Una forma de abordar la reutilización con Factory Methods en una jerarquía de herencia sería poner el código común en un método protegido y llamar a ese método desde Factory Method en lugar de llamar directamente a la clase base Factory Method desde un sub- tipos Método de fábrica. Una mejor implementación podría usar la misma técnica pero mover los métodos de fábrica a una clase de fábrica y usar la lógica del constructor (interna ahora, no privada), quizás junto con un método (s) de inicialización, para crear el objeto. Si el comportamiento que está heredando es externo a la clase (descifrado/validación/etc.), puede usar métodos compartidos (o composición) dentro de la fábrica para permitir la reutilización entre los métodos de fábrica.
Sin conocer el objetivo de su uso de métodos estáticos, es difícil darle una dirección exacta, pero espero que esto ayude.
¿Alguna razón por la cual este método particular es estático? – Rad