Yes and no.
You can use bytecode manipulation to change the final class to final on the fly. This does not even violate binary compatibility, so there is no risk of loader / class verification errors.
However, you must apply the bytecode modifications to the final class itself. You cannot manipulate bytecode in a child class to inherit it from the final parent class. More precisely, if you make the modified child class be rejected by the verifier when loading along with the final class.
source share