Referência de modificadores de classe
As combinações permitidas e não permitidas de modificadores de classe.
Esta página contém informações de referência para modificadores de classe.
Combinações válidas
#As combinações válidas de modificadores de classe e suas capacidades resultantes são:
| Declaração | Construct? | Extend? | Implement? | Mix in? | Exhaustive? |
|---|---|---|---|---|---|
class |
Sim | Sim | Sim | Não | Não |
base class |
Sim | Sim | Não | Não | Não |
interface class |
Sim | Não | Sim | Não | Não |
final class |
Sim | Não | Não | Não | Não |
sealed class |
Não | Não | Não | Não | Sim |
abstract class |
Não | Sim | Sim | Não | Não |
abstract base class |
Não | Sim | Não | Não | Não |
abstract interface class |
Não | Não | Sim | Não | Não |
abstract final class |
Não | Não | Não | Não | Não |
mixin class |
Sim | Sim | Sim | Sim | Não |
base mixin class |
Sim | Sim | Não | Sim | Não |
abstract mixin class |
Não | Sim | Sim | Sim | Não |
abstract base mixin class |
Não | Sim | Não | Sim | Não |
mixin |
Não | Não | Sim | Sim | Não |
base mixin |
Não | Não | Não | Sim | Não |
Combinações inválidas
#Certas combinações de modificadores não são permitidas:
| Combinação | Raciocínio |
|---|---|
base, interface e final |
Todos controlam as mesmas duas capacidades (
extend
e
implement
), então são mutuamente exclusivos.
|
sealed e abstract |
Nenhum pode ser construído, então são redundantes juntos. |
sealed com base, interface ou final |
Tipos
sealed
já não podem ser misturados, estendidos ou implementados de outra biblioteca, então são redundantes ao combinar com os modificadores listados.
|
mixin e abstract |
Nenhum pode ser construído, então são redundantes juntos. |
mixin e interface, final ou sealed |
Uma declaração
mixin
ou
mixin class
é destinada a ser misturada, o que os modificadores listados impedem.
|
enum e quaisquer modificadores |
Declarações
enum
não podem ser estendidas, implementadas, misturadas, e sempre podem ser instanciadas, então nenhum modificador se aplica a declarações
enum
.
|
extension type e quaisquer modificadores |
Declarações
extension type
não podem ser estendidas ou misturadas, e só podem ser implementadas por outras declarações
extension type
.
|
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Página atualizada pela última vez em 2026-11-12. Ver código-fonte ou relatar um problema.
Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.