invalid_ override
Detalhes sobre o diagnóstico 'invalid_override' produzido pelo analisador do Dart.
'{0}.{1}' ('{2}') isn't a valid override of '{3}.{1}' ('{4}').
The setter '{0}.{1}' ('{2}') isn't a valid override of '{3}.{1}' ('{4}').
Descrição
#O analisador produz este diagnóstico quando um membro de uma classe é encontrado sobrescrevendo um membro de um supertipo, e a sobrescrita não é válida. Uma sobrescrita é válida se todas as condições a seguir forem verdadeiras:
- Ela permite todos os argumentos permitidos pelo membro sobrescrito.
- Ela não exige nenhum argumento que não seja exigido pelo membro sobrescrito.
- O tipo de cada parâmetro do membro sobrescrito é atribuível ao parâmetro correspondente da sobrescrita.
- O tipo de retorno da sobrescrita é atribuível ao tipo de retorno do membro sobrescrito.
Exemplo
#
O código a seguir produz este diagnóstico porque o tipo do parâmetro s
(String) não é atribuível ao tipo do parâmetro i (int):
class A {
void m(int p) {}
}
class B extends A {
@override
void m(String p) {}
}
Correções comuns
#Se o método inválido se destina a sobrescrever o método da superclasse, então altere-o para que esteja de acordo:
class A {
void m(int p) {}
}
class B extends A {
@override
void m(int p) {}
}
Se ele não se destina a sobrescrever o método da superclasse, então renomeie-o:
class A {
void m(int p) {}
}
class B extends A {
void m2(String p) {}
}
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. 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ê.