Каковы веские причины для запрета наследования в Java, например, с использованием конечных классов или классов с использованием одного частного конструктора без параметров? Каковы веские причины сделать метод окончательным?
Вы хотите сделать метод финальным, чтобы переопределенные классы не изменили его поведение. Если вы хотите изменить поведение, сделайте метод общедоступным. Когда вы переопределяете публичный метод, его можно изменить.