Why is it that we cannot override static and final methods?
java
Solution
`final` methods can't be overriden, because that's what `final` is designed to do: it's a sign saying "do not override this".
`static` methods can't be overriden, because they are never called in a polymorphic way: when you call `SomeClass.foo()` it will always be the `foo` method of `SomeClass`, no matter if there is another `ExtendedSomeClass` that has a much groovier `foo` method.
Problem
I am trying to understand why we can't override static and final methods. I do not get the purpose behind it.