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.