Why does it have to be Abstract or Final as long as you don't extend it or create any object instances?
Perhaps more for releasing as a module when you want that kind of functionality, to stop the user from extending your Type and changing the functionality in some way.
Otherwise, yes, you would just make a decision not to extend it etc. in your own code.