final 쓰는 이유 및 사용했을 때 성능 향상의 이유

BINGBING🐨·2022년 5월 23일
0

iOS CS

목록 보기
2/6

기능

해당 클래스에서 하위클래스로 전체클래스 또는 메서드, 프로퍼티가 상속 또는 상속에 따른 재정의가
될 필요 없다고 판단한 경우 final을 요소 앞에 추가함으로 상속을 방지

메서드나 프로퍼티 앞에 final을 쓰면 override가 안된다.

성능적 이점

vTable : 클래스 내부의 함수들 중 어떠한 함수를 호출해야 할지 결정하는 테이블
함수가 호출할 때 class가 어떤 함수를 호출해야하는지 조회를 하고 해당 함수를 호출

final키워드가 적용된 메서드는 컴파일 시점에 어떤 메서드를 결정할 수 있으므로 성능상 이점을 가질 수 있다.
->Static Dispatch

  • Dynamic Dispatch
    어떤 메소드와 프로퍼티를 호출할지 유동적으로 결정함(런타임에 결정됨)

  • Static Dispatch
    런타임 전에 이미 어떤 메소드와 프로퍼티를 호출할지 결정을 해
    컴파일 시점에서 성능향상의 이점이 있다.

참고 출처
itllebgone tistory
Ryan-Son.devlog

profile
iOS Developer

0개의 댓글