Referencia de modificadores de clase
Las combinaciones permitidas y no permitidas de modificadores de clase.
Esta página contiene información de referencia para los modificadores de clase (class modifiers).
Combinaciones válidas
#Las combinaciones válidas de modificadores de clase y las capacidades resultantes son:
| Declaración | Construir? | Extender? | Implementar? | Mezclar (mix in)? | Exhaustivo? |
|---|---|---|---|---|---|
class |
Yes | Yes | Yes | No | No |
base class |
Yes | Yes | No | No | No |
interface class |
Yes | No | Yes | No | No |
final class |
Yes | No | No | No | No |
sealed class |
No | No | No | No | Yes |
abstract class |
No | Yes | Yes | No | No |
abstract base class |
No | Yes | No | No | No |
abstract interface class |
No | No | Yes | No | No |
abstract final class | No | No | No | No | No |
mixin class |
Yes | Yes | Yes | Yes | No |
base mixin class |
Yes | Yes | No | Yes | No |
abstract mixin class |
No | Yes | Yes | Yes | No |
abstract base mixin class |
No | Yes | No | Yes | No |
mixin |
No | No | Yes | Yes | No |
base mixin |
No | No | No | Yes | No |
Combinaciones inválidas
#Ciertas combinaciones de modificadores no están permitidas:
| Combinación | Razonamiento |
|---|---|
base, interface y final |
Todos controlan las mismas dos capacidades (
extender (extend)
e
implementar (implement)
), por lo que son mutuamente excluyentes. |
sealed y abstract |
Ninguna se puede construir, por lo que son redundantes juntas. |
sealed con base, interface o final |
Los tipos sealed
ya no se pueden mezclar (mixed in), extender o implementar desde otra biblioteca, por lo que es redundante combinarlos con los modificadores enumerados. |
mixin y abstract |
Ninguna se puede construir, por lo que son redundantes juntas. |
mixin con interface, final o sealed |
Una declaración de
mixin
o
mixin class
está destinada a mezclarse (mixed in), lo cual impiden los modificadores enumerados. |
enum y cualquier modificador |
Las declaraciones enum
no se pueden extender, implementar ni mezclar (mixed in), y siempre se pueden instanciar, por lo que no se aplica ningún modificador a las declaraciones
enum. |
extension type y cualquier modificador |
Las declaraciones extension type
no se pueden extender ni mezclar (mixed in), y solo pueden ser implementadas por otras declaraciones
extension type. |
A menos que se indique lo contrario, la documentación en este sitio refleja Dart 3.12.2. Página actualizada por última vez el 2025-05-05. Ver fuente oreportar un problema.