fianl 키워드를 사용하여 실수로 메소드, 프로퍼티, 서브스크립트를 재정의하는 것을 방지할 수 있다. 재정의를 방지하려면 메소드, 프로퍼티, 서브스크립트의 키워드 전에 final 수정자를 작성한다 (final var, final func, final class func, final subscript와 같이 작성).
하위 클래스에서 final 메소드, 프로퍼티, 서브스크립트를 재정의하면 컴파일 에러가 발생한다. 확장한 클래스에 추가된 메소드, 프로퍼티 또는 서브스크립트는 확장의 정의 내에서 final로 표기될 수 있다.
클래스 정의에 class 키워드 전 final 키워드를 표기하여 final로 전체 클래스를 표시할 수 있다 (final class). final 클래스를 상속하려는 모든 시도는 컴파일 에러가 발생한다.