wish help you to fix your issue The primary problem with this approach is that even though the subclass is required to implement the initPeople method, there is nothing forcing the subclass to call it in the constructor. A better approach would be to use the Template design pattern :
public abstract class A
protected Person people;
public final void execute()
protected abstract void initPeople();
protected abstract void performOperations();
this one helps. There is only one context. There's a single object. Its class is MySubClass. It is a mistake to have overridden the method with a different incompatible type. Don't do that. This is not C++ with function overloading. There's no dispatch based on the type of arguments.
Forcing a subclass to call its superclass method in Objective-C