Зачем использовать [ClassName alloc] вместо [[self class] alloc]?

Я читаю через Марка ДалримплаУзнайте Objective-C на Mac (только в главе о протоколах, так что все еще относительно новичок) и пытается выяснить что-то:

Зачем вам ссылаться на класс под собственным именем? Если бы у меня был класс под названиемFooзачем мне писать, скажем,

[[Foo alloc] init]

и не

[[[self class] alloc] init]

Если бы у меня был подкласс Bar, не первый вариант лишил бы меня силы писать

[[Bar alloc] init]

тогда как второй вариант позволил бы это? Когда первый вариант будет лучше?

Ответы на вопрос(3)

Ваш ответ на вопрос