Why is it that business methods should not be declared final?

Dan Christopherson

I believe that the basic reason is that mandating non-final business methods allows container developers to implement their EJB container via inheritence. They can generate a class that extends your bean, with methods that perform transactional housekeeping, then call the inherited method (which is the one you wrote in your bean), then perform more housekeeping.

That said, I know of no major container that does things this way (although some of the OODBMS vendors may)