Sometimes you want to prevent classes from being extended or individual methods of a particular class from being overridden. The keyword final is used for these purposes. When used to declare a class it prevents that class from being extended. When used to declare a method it prevents the method from being overridden in a derived class.
You cannot use the keyword final in combination with the keyword abstract for obvious reasons.
Use the final keyword to stop the inheritance mechanism or prevent base class methods from being overridden in derived classes.