클래스 수정자 참조
클래스 수정자 참조 (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)
특정 조합은 허용되지 않아요.
| 수정자 조합 | 이유 |
|---|---|
base와 interface, final |
모두 동일한 두 능력(extend와 implement)을 제어하므로 서로 배타적이에요. |
sealed와 abstract |
둘 다 생성할 수 없으므로 함께 쓰면 중복이에요. |
sealed와 base, interface 또는 final |
sealed 타입은 이미 다른 라이브러리에서 믹스인·상속·구현이 불가능하므로 나열된 수정자와 함께 쓰면 중복이에요. |
mixin과 abstract |
둘 다 생성할 수 없으므로 함께 쓰면 중복이에요. |
mixin과 interface, final 또는 sealed |
mixin이나 mixin class 선언은 믹스인으로 쓰이려는 의도인데, 나열된 수정자가 그것을 막아요. |
enum과 그 어떤 수정자 |
enum 선언은 상속·구현·믹스인이 불가능하고 항상 인스턴스화할 수 있으므로 어떤 수정자도 적용되지 않아요. |
extension type과 그 어떤 수정자 |
extension type 선언은 상속이나 믹스인이 불가능하고, 다른 extension type 선언에 의해서만 구현될 수 있어요. |
더 알아보기 (Learn more)
- Class modifiers — 클래스 수정자 상세 설명