overridden_ fields
Detalhes sobre o diagnóstico 'overridden_fields' produzido pelo analisador do Dart.
Field overrides a field inherited from '{0}'.
Descrição
#O analisador emite este diagnóstico quando uma classe define um campo que sobrescreve um campo de uma superclasse.
Sobrescrever um campo com outro campo faz com que o objeto tenha dois campos distintos, mas, como os campos têm o mesmo nome, apenas um deles pode ser referenciado em um determinado escopo. Isso pode levar a confusão, em que uma referência a um dos campos pode ser confundida com uma referência ao outro.
Exemplo
#
O código a seguir produz este diagnóstico porque o campo f em B oculta o
campo f em A:
class A {
int f = 1;
}
class B extends A {
@override
int f = 2;
}
Correções comuns
#Se os dois campos representam a mesma propriedade, então remova o campo da subclasse:
class A {
int f = 1;
}
class B extends A {}
Se os dois campos devem ser distintos, então renomeie um dos campos:
class A {
int f = 1;
}
class B extends A {
int g = 2;
}
Se os dois campos estão relacionados de alguma forma, mas não podem ser o mesmo, então encontre outra forma de implementar a semântica de que você precisa.
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ê.