¿Cómo anular la propiedad de una superclase con tipos más específicos?

El escenari
Tengo una situación en la que una clase base llamadaAbstractRequest tiene una propiedad delegada de tipoid <AbstractRequestDelegate> declarado en el archivo de encabezado:

@property (nonatomic, assign) id <AbstractRequestDelegate> delegate;

l protocolo delegado abstracto contiene algunos métodos requeridos, y como se indica con la palabra 'resumen', tanto elAbstractRequest y elAbstractRequestDelegate están destinados a ser subclases / extendidos.

Un ejemplo de esto sería la subclase ConcreteRequest y el protocolo extendido ConcreteRequestDelegates, que agregan métodos adicionales a los abstractos. La intención es que tanto los métodos de clase abstractos como los concretos puedan enviar mensajes a la única instancia de delegado asignada.

En cierto momento, ConcreteRequest desea llamar a un método en el delegado definido por ConcreteRequestDelegate. Debido a que el tipo de delegado es id, el compilador dará una advertencia de que este método podría no implementarse.

ConcreteRequest.m: 38: advertencia: la propiedad 'delegar' requiere que se defina el método '-delegar' - use @synthesize, @dynamic o proporcione una implementación del método

El problem
Esta advertencia está justificada, ya que la propiedad está escrita después de todo enid <AbstractRequestDelegate>. Para solucionar esto, quiero dejar claro al compilador que el delegado asignado a la instancia concreta debe ser del tipoid <ConcreteRequestDelegate>. Esto me pareció perfectamente razonable, así que puse una nueva propiedad en el encabezado ConcreteRequest, con la esperanza de anular el resumen:

@property (nonatomic, assign) id <ConcreteRequestDelegate> delegate;

Pero aquí es donde el compilador no está de acuerdo conmigo, probablemente con buenas razones. Pensé que daría una advertencia por anular la propiedad de una superclase con el tipo incorrecto, pero en cambio solo me exige volver a sintetizar esta nueva propiedad. No quiero ir allí, porque los métodos de la superclase no tendrán acceso a la misma propiedad de delegado.

La pregunt
¿Hay alguna forma de 'volver a declarar' la propiedad en la subclase concreta con la información de tipo agregada? ¿O puede detectar el error en mi pensamiento, porque tal vez este es un problema bastante común que no he encontrado hasta ahora?

Aclamaciones
EP.

PD. Todos los nombres de clase y protocolo que aparecen en este trabajo son ficticios. Cualquier parecido con los nombres reales de clase y protocolo, de código abierto o patentado, es pura coincidencia.

Respuestas a la pregunta(2)

Su respuesta a la pregunta