|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно объявить некоторых или весь финал методов class. Вы используете final ключевое слово в объявлении метода, чтобы указать, что метод не может быть переопределен подклассами. Object class делает это — много его методов final.
Вы могли бы хотеть сделать финал метода, если у него есть реализация, которая не должна быть изменена, и это критическое по отношению к непротиворечивому состоянию объекта. Например, Вы могли бы хотеть сделать getFirstPlayer метод в этом ChessAlgorithm Финал class:
class ChessAlgorithm {
enum ChessPlayer { WHITE, BLACK }
...
final ChessPlayer getFirstPlayer() {
return ChessPlayer.WHITE;
}
...
}
Методы, вызванные от конструкторов, должны обычно быть объявлены финалом. Если конструктор вызывает незаключительный метод, подкласс может пересмотреть тот метод с удивлением или нежелательными результатами.
Отметьте, что можно также объявить весь финал class. class, который объявляется финалом, не может быть разделен на подклассы. Это особенно полезно, например, создавая неизменный class как String class.