Si quiere decir por qué no puede declarar un resumen de clase en lugar de solo implementarlo como una clase abstracta, supongo que es porque no interactúa tan bien con Objective-C extremadamente dinámico, tipos-opcional, Smalltalky estilo de paso de mensajes (Smalltalk no tiene soporte incorporado para declararlos tampoco). Por ejemplo:
Usted puede no saber qué clase va a enviar alloc
o init
a, por lo que sería una garantía bastante débil
subclases aún puede que tenga que pasar alloc
y init
hasta la clase jerarquía, por lo que necesitaría para permitir que, por lo que es una garantía aún más débil
Categorías modifican las clases en tiempo de ejecución, por lo que es el contrato más débil todavía abstracta
Al final, terminaría con una palabra clave que acaba de hacer más o menos lo mismo que hacemos ahora para implementar clases abstractas (es decir, quizás anule init
para fianza si el receptor no es una subclase).
Los modificadores de tipo que solo especifican un contrato se vuelven más útiles cuanto más confíe en el sistema de tipo estático, pero Objective-C fue diseñado para no confiar tanto en el sistema de tipo, por lo que poner el contrato en el sistema de tipo es menos útil que en algunos otros idiomas.