1. @override
- 명시적 재정의: 부모 클래스에 있는 메서드를 자식 클래스에서 재정의하고 있다는 것을 명확하게 보여준다. 사실 굳이 쓰지 않아도 되는 어노테이션인거다!
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp();
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
home: LandingPage(),
);
}
}
ex) 위 코드 `MyApp` 클래스는 `StatelessWidget` 클래스를 상속받고 있으며, `build` 메서드를 재정의하고 있다. 이때`@override를 사용하여 부모 클래스의 메서드를 재정의하고 있음을 명시한다.
2. const MyApp({super.key})
- Flutter에서 stateless 위젯을 쓸때는 const로 생성자를 만들어준다.
- super.key 는 부모 클래스(StatelessWidget 또는 StatefulWidget)의 생성자에 key를 전달하는 역할을 한다.
여기서 key란? 🔑
- key는 Flutter에서 위젯의 고유 식별자 역할을 하며, 위젯 트리에서 동일한 타입의 위젯을 구분하는 데 사용됩니다. super.key를 사용하면 부모 클래스에 key를 전달하여 이 식별 기능을 활용할 수 있습니다.
{}는 생성자 만들 때 없어도 되는 거 아닌가? 해서, 없애보았다.
✏️ 정리
@override는 부모 클래스의 메서드를 재정의하고 있음을 명확히 하기 위해 사용됨
const MyApp({super.key})는 상수 객체를 생성하고, 부모 클래스의 생성자에 key를 전달하여 위젯 트리에서 이 위젯을 고유하게 식별할 수 있도록 합니다.
'Flutter > Flutter' 카테고리의 다른 글
1. 앱에 어울리는 애니메이션 구현하기 <Lottie편> (1) | 2024.09.16 |
---|---|
mainColor를 const로 고정해주고 싶었을 뿐인데 (0) | 2024.08.30 |
왜 자꾸 const를 쓰라고 하는거지? (0) | 2024.08.26 |
1. Postman 사용해보기 (0) | 2024.08.21 |
개발자의 스레드 관리는 비효율적 in 플러터 (2) | 2024.08.21 |