Our method name `abstract!` can conflict with other methods of the same name, e.g. [AbstractController::Base.abstract!](`https://edgeapi.rubyonrails.org/classes/AbstractController/Base.html#method-c-abstract-21`). Our implementation should do `super if defined?(super)`