인프런 커뮤니티 질문&답변

건강한 고슴도치님의 프로필 이미지
건강한 고슴도치

작성한 질문수

[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

Dart #2 객체지향 프로그래밍 (Object Oriented Programming)

클래스 상속 질문있습니다.

작성

·

262

0

부모 클래스를 상속할 때..

class Idol {
  String name;
  int membersCount;

  Idol({
    required this.name,
    required this.membersCount,
  });

  void sayName() {
    print('저는 ${this.name}입니다.');
  }

  void sayMembersCount() {
    print('${this.name}은/는 ${this.membersCount}명의 멤버로 구성되어 있습니다.');
  }
}

 

강의에서 설명해주신

class GirlGroup extends Idol {
  GirlGroup(
    String name,
    int membersCount,
  ) : super(
          name: name,
          membersCount: membersCount,
        );
}

이 코드 대신

 

명시적으로

class BoyGroup extends Idol {
  BoyGroup({
    required super.name,
    required super.membersCount,
  });
}

이렇게 사용해도 인스턴스에서 명시적으로 선언하는 것 외에 다른 차이는 없는 건가요?

(두 가지 모두 정상 출력확인했습니다.)

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

말씀주신 두 코드는 첫번째는 positional parameter를 사용하고 있고 두번째는 named parameter를 사용하고 있다는 사실 외에 다른점이 없습니다!

단순히 파라미터를 받아서 super 생성자에 넘겨주는 경우가 많아서 생긴 문법입니다.

감사합니다!

건강한 고슴도치님의 프로필 이미지
건강한 고슴도치

작성한 질문수

질문하기