स्विफ्ट में कोई सार वर्ग और विधियां नहीं हैं। इसके बजाय, यह प्रोटोकॉल प्रदान करता है।स्विफ्ट - मिश्रण अमूर्त और ठोस तरीके
यह ठीक है जब आपकी कक्षाएं पूरी तरह से सार या पूरी तरह से ठोस होती हैं।
लेकिन एक अमूर्त वर्ग को लागू करने के लिए सबसे अच्छा 'स्विफ्ट' तरीका क्या है जिसमें ठोस तरीके भी हैं?
छद्म कोड उदाहरण:
class Animal {
abstract makeSound()
abstract eyeCount()
}
class Mammal : Animal {
override eyeCount { return 2 } // Let's assume all mammals have hard-coded 2 eyes...
class Cat : Mammal {
override makeSound { print "Meow!" }
}
class Dog : Mammal {
override makeSound { print "Woof!" }
}
स्तनपायी में, मैं ठोस विधि eyeCount()
लागू करने के लिए है क्योंकि सभी स्तनधारियों 2 हार्ड-कोडेड आँखें (माना जाता है कि है) चाहते हैं और मैं फिर से नहीं करना चाहते इसे कुत्ते और बिल्ली में लागू करें। हालांकि, makeSound()
केवल कुत्ते और बिल्ली के लिए लागू किया जाना चाहिए क्योंकि स्तनधारियों की अलग-अलग आवाजें होती हैं।
स्विफ्ट में आप इसे कैसे कार्यान्वित करेंगे? धन्यवाद!
मुझे वास्तव में उन चीज़ों में परेशानी है जो केवल रनटाइम के दौरान गलत होने की घोषणा करते हैं। यह कोड अविश्वसनीय बनाता है। एक कार्यान्वयन के लिए @pommes उत्तर या यह जांचें, जो संकलन समय के दौरान जांचता है http://stackoverflow.com/a/39038828/2435872 – jboi