यदि आप का मतलब है कि आप इसे एक अमूर्त वर्ग के रूप में लागू करने के बजाय कक्षा सार घोषित क्यों नहीं कर सकते हैं, तो मुझे लगता है कि ऐसा इसलिए है क्योंकि यह उद्देश्य-सी के अत्यंत गतिशील, प्रकार-वैकल्पिक, स्मॉलटाकी के साथ इतना अच्छा व्यवहार नहीं करता है संदेश-गुजरने वाली शैली (स्मॉलटाक में उन्हें घोषित करने के लिए अंतर्निहित समर्थन नहीं है)। उदाहरण के लिए:
आप क्या वर्ग आप भेज रहे हैं alloc
या init
लिए, तो यह एक बहुत कमजोर गारंटी
उपवर्गों अभी भी वर्ग अप alloc
और init
पारित करने के लिए आवश्यकता हो सकती है हो सकता है पता नहीं हो सकता है पदानुक्रम, तो हम है कि अनुमति देने के लिए, यह एक भी कमजोर गारंटी
श्रेणियाँ कार्यावधि में कक्षाओं को संशोधित कर रही है, आवश्यकता होगी अभी भी कमजोर यह सार अनुबंध बनाने
012,
अंत में, आप एक ऐसे कीवर्ड के साथ हवा में उतरेंगे जो लगभग वही काम करता है जो हम अमूर्त वर्गों को लागू करने के लिए करते हैं (यानी। अगर रिसीवर उप-वर्ग नहीं है तो शायद init
को जमानत के लिए ओवरराइड करें)।
टाइप संशोधक जो केवल एक अनुबंध निर्दिष्ट करते हैं, उतना अधिक उपयोगी हो जाते हैं जितना आप स्थिर प्रकार प्रणाली पर भरोसा करते हैं - लेकिन उद्देश्य-सी को सभी प्रकार के सिस्टम पर भरोसा न करने के लिए डिज़ाइन किया गया था, इसलिए प्रकार प्रणाली में अनुबंध डालना है कुछ अन्य भाषाओं की तुलना में कम उपयोगी है।