Use (id)as return type.
Objective-C does not support covariant declarations. Consider:
@interface NSArray:NSObject
+ (id) array;
@end
+array NSArray, NSMutableArray. , - . - Objective-C , (NSArray*), `(NSMutableArray *). , . , , , .
... , , . , , , , , (id).
. -init* , (). , , (id) .
- .
, LLVM instancetype, id , . , " , isKindOfClass: , ".