flutter study "super, initState()"

프랭크 IT·2023년 10월 13일
0

flutter

목록 보기
13/28
post-custom-banner

super.initState(); 코드는 현재 클래스에서 오버라이드된 initState() 메서드 내에서 상위 클래스의 initState() 메서드를 호출하는 것을 의미합니다.

여기서의 super는 상속 관계에서 부모 클래스를 참조하는 키워드입니다. StatefulWidget의 상태 관리를 위한 State 클래스에서 initState() 메서드를 오버라이드할 때, 원래 State 클래스에 정의된 initState() 메서드의 로직도 실행되어야 하는 경우가 있습니다. 이 때 super.initState();를 사용하여 부모 클래스의 initState() 메서드를 호출하게 됩니다.

즉, super.initState();는 다음과 같은 의미를 가집니다:

  1. 부모 클래스의 로직 실행: 현재 클래스에서 오버라이드된 initState() 로직 외에도, 상위 클래스의 initState() 로직도 실행하겠다는 의미입니다.
  2. 상태 초기화 순서 보장: super.initState();를 호출함으로써, 상위 클래스의 초기화 로직이 먼저 실행되고, 그 후에 현재 클래스의 초기화 로직이 실행되는 순서를 보장합니다.
  3. 상속 관계에서의 안정성: 부모 클래스의 initState()에서 중요한 초기화 작업이 수행될 수 있으므로, 이를 생략하지 않고 호출함으로써 안정성을 보장합니다.

Flutter에서는 initState() 메서드를 오버라이드할 때, 항상 맨 처음에 super.initState();를 호출하는 것이 권장됩니다. 이는 상위 클래스의 초기화 로직을 제대로 실행하고, 오버라이드된 메서드에서 추가적인 초기화 작업을 수행하기 위함입니다.

profile
AWS, Vue, Java, flutter, Mongodb, Python, Git , EKS, Docker, 독서, 영어, 에어로빅, 자전거, 농구, 바둑, 풋살, 복싱, Guitar, 글쓰기, 랭체인
post-custom-banner

0개의 댓글