Pular para o conteúdo principal

invalid_override_of_non_virtual_member

Detalhes sobre o diagnóstico 'invalid_override_of_non_virtual_member' produzido pelo analisador do Dart.

The member '{0}' is declared non-virtual in '{1}' and can't be overridden in subclasses.

Descrição

#

O analisador produz este diagnóstico quando um membro de uma classe, de um mixin ou de um enum sobrescreve um membro que tem a anotação @nonVirtual.

Exemplo

#

O código a seguir produz este diagnóstico porque o método m em B sobrescreve o método m em A, e o método m em A está anotado com @nonVirtual:

dart
import 'package:meta/meta.dart';
​
class A {
  @nonVirtual
  void m() {}
}
​
class B extends A {
  @override
  void m() {}
}

Correções comuns

#

Se a anotação no método da superclasse estiver correta (o método da superclasse não se destina a ser sobrescrito), então remova ou renomeie o método que o sobrescreve:

dart
import 'package:meta/meta.dart';
​
class A {
  @nonVirtual
  void m() {}
}
​
class B extends A {}

Se o método da superclasse se destinar a ser sobrescrito, então remova a anotação @nonVirtual:

dart
class A {
  void m() {}
}
​
class B extends A {
  @override
  void m() {}
}

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ê.