Наследование в C#: изменение возвращаемого типа — как исправить ошибку?
C# не поддерживает return type covariance.
Обобщения могут вам, наверно, помочь.interface ILauncher
  {
    object ParseArgs(string[] args);
  }

  abstract class ALanucher<T> : ILauncher
  {
    protected abstract T ParseArgs(string[] args);

    object ILanucher.ParseArgs(string[] args)
    {
      return ParseArgs(args);
    }
  }

  class Launcher : ALanucher<int>
  {
    protected override int ParseArgs(string[] args)
    {
      throw new NotImplementedException();
    }
  }