Есть ли аналог спецификатора C# sealed в Java и зачем он нужен?

Если да то какие функции он выполняет в java?

В Джаве таким спецификатором является слово final. Нужен он для того что б запретить наследование (для класса), переопределение (для метода) и изменение значения (для поля).

public final class Student {
//some code
}
public class BadStudent extends Student{ //error
public BadStudent(){}
}