super.initState();
코드는 현재 클래스에서 오버라이드된 initState()
메서드 내에서 상위 클래스의 initState()
메서드를 호출하는 것을 의미합니다.
여기서의 super
는 상속 관계에서 부모 클래스를 참조하는 키워드입니다. StatefulWidget
의 상태 관리를 위한 State
클래스에서 initState()
메서드를 오버라이드할 때, 원래 State
클래스에 정의된 initState()
메서드의 로직도 실행되어야 하는 경우가 있습니다. 이 때 super.initState();
를 사용하여 부모 클래스의 initState()
메서드를 호출하게 됩니다.
즉, super.initState();
는 다음과 같은 의미를 가집니다:
initState()
로직 외에도, 상위 클래스의 initState()
로직도 실행하겠다는 의미입니다.super.initState();
를 호출함으로써, 상위 클래스의 초기화 로직이 먼저 실행되고, 그 후에 현재 클래스의 초기화 로직이 실행되는 순서를 보장합니다.initState()
에서 중요한 초기화 작업이 수행될 수 있으므로, 이를 생략하지 않고 호출함으로써 안정성을 보장합니다.Flutter에서는 initState()
메서드를 오버라이드할 때, 항상 맨 처음에 super.initState();
를 호출하는 것이 권장됩니다. 이는 상위 클래스의 초기화 로직을 제대로 실행하고, 오버라이드된 메서드에서 추가적인 초기화 작업을 수행하기 위함입니다.