Jak wymusić podpisy konstruktora i metody statyczne?

Czy istnieje sposób wymuszenia klasy (podrzędnej) na konstruktory z konkretnymi sygnaturami lub konkretnymi metodami statycznymi w języku C # lub Java?

Nie możesz oczywiście używać do tego interfejsów i wiem, że będzie to miało ograniczone zastosowanie. Jednym z przykładów, w których uważam to za przydatne, jest wymuszanie pewnych wytycznych projektowych, na przykład:

Wyjątki
Wszyscy powinni mieć czterech kanonicznych konstruktorów, ale nie ma sposobu na ich egzekwowanie. Aby je złapać, musisz polegać na narzędziu takim jak FxCop (przypadek C #).

Operatorzy
Nie ma kontraktu określającego, że można zsumować dwie klasy (z operatorem + w C #)

Czy istnieje jakiś wzór do obejścia tego ograniczenia? Jaką konstrukcję można dodać dojęzyk pokonać to ograniczenie w przyszłych wersjach C # lub Java?

questionAnswers(9)

yourAnswerToTheQuestion