When we do self = [super init];
in our subclass's init method implementation,
I don't understand why it's not self= [[super alloc] init];
In the first case, how can you init something that you haven't allocate memory for?
Is this because you're not actually initing a superclass object but instead using the superclass's init method to init yourself first?
If so, where and when did we allocate memory for self?
Is it just assumed that we did the alloc somewhere else in our program before calling this init method?
Is the syntax basically saying [subclass initUsingMySuperClassImplementationFirst]
?