The below @Override annotation indicates that I am not overriding the method defined in the interface. How do I use generics with my concrete class so that it overrides the interface method?
public interface AInterface<T extends MyType> {
  void do(T thing)
}
public abstract class BaseMyClass implments AInterface {
  // other stuff
}
// AType extends MyType
public class MyClass extends BaseMyClass <AType> {
  @Overide 
  public void doThing(AType atype) {
  }
}
 
    