클래스 수정자 참조

클래스 수정자 참조 (Class modifiers reference)

클래스 수정자(class modifiers)의 허용된 조합과 허용되지 않는 조합을 정리한 참조 페이지예요. 각 수정자가 클래스에 부여하는 능력이 무엇인지 한눈에 보고 싶을 때 이 표를 보면 돼요.

출처: Dart 공식 문서

본문

이 페이지는 class modifiers에 대한 참조 정보를 담고 있어요.

유효한 조합 (Valid combinations)

클래스 수정자의 유효한 조합과 그 결과로 얻는 능력은 다음과 같아요.

선언 생성(Construct)? 상속(Extend)? 구현(Implement)? 믹스인(Mix in)? 완전(exhaustive)?
class 아니요 아니요
base class 아니요 아니요 아니요
interface class 아니요 아니요 아니요
final class 아니요 아니요 아니요 아니요
sealed class 아니요 아니요 아니요 아니요
abstract class 아니요 아니요 아니요
abstract base class 아니요 아니요 아니요 아니요
abstract interface class 아니요 아니요 아니요 아니요
abstract final class 아니요 아니요 아니요 아니요 아니요
mixin class 아니요
base mixin class 아니요 아니요
abstract mixin class 아니요 아니요
abstract base mixin class 아니요 아니요 아니요
mixin 아니요 아니요 아니요
base mixin 아니요 아니요 아니요 아니요

유효하지 않은 조합 (Invalid combinations)

특정 조합은 허용되지 않아요.

수정자 조합 이유
baseinterface, final 모두 동일한 두 능력(extendimplement)을 제어하므로 서로 배타적이에요.
sealedabstract 둘 다 생성할 수 없으므로 함께 쓰면 중복이에요.
sealedbase, interface 또는 final sealed 타입은 이미 다른 라이브러리에서 믹스인·상속·구현이 불가능하므로 나열된 수정자와 함께 쓰면 중복이에요.
mixinabstract 둘 다 생성할 수 없으므로 함께 쓰면 중복이에요.
mixininterface, final 또는 sealed mixin이나 mixin class 선언은 믹스인으로 쓰이려는 의도인데, 나열된 수정자가 그것을 막아요.
enum과 그 어떤 수정자 enum 선언은 상속·구현·믹스인이 불가능하고 항상 인스턴스화할 수 있으므로 어떤 수정자도 적용되지 않아요.
extension type과 그 어떤 수정자 extension type 선언은 상속이나 믹스인이 불가능하고, 다른 extension type 선언에 의해서만 구현될 수 있어요.

더 알아보기 (Learn more)