Can this be final? Or do you need to override this behavior? If you are overriding it, is your subclass completely replacing the behavior, or is it wrapping the behavior? If it's wrapping it, I would personally rather have this has private and add an extension point (perhaps named aroundClassRules, if your extension wants to do work before and after the class rules).