यह लगभग व्यवहार है।
एक वर्ग एक निश्चित व्यवहार (इंटरफ़ेस या अनुबंध) वाणी:
यही वर्ग भी अपने उपवर्गों में से किसी को उस व्यवहार (कार्यान्वयन) या प्रतिनिधि या तो पूरा या इसका हिस्सा परिभाषित कर सकते हैं:
में स्यूडोकोड:
class Animal {
method walk()
method speak()
method jump()
// ... here goes the implementation of the methods
}
आप उपवर्गीकरण के माध्यम से एक वर्ग इनहेरिट अन्य वर्ग के व्यवहार करते हैं।
एक विधि के क्रियान्वयन उपवर्गों को प्रत्यायोजित किया जाता है, विधि सार आधार वर्ग में कहा जाता है और जावा जैसी भाषाओं में, पूरे आधार वर्ग सार रूप में अच्छी तरह हो जाता है:
abstract class Animal {
method walk() {
doWalk()
}
method speak() {
print "hi, I am an animal!"
}
abstract method jump() // delegated to specific animals
}
class Horse inherits from Animal {
override method walk() {
doWalkLikeAHorse()
}
override method speak() {
print "hi, I am a horse!"
}
override method jump() {
doJumpLikeAHorse()
}
}
class Elephant inherits from Animal {
override method walk() {
doWalkLikeAnElephant()
}
override method speak() {
print "hi, I am an elephant!"
}
override method jump() {
throw error "Sorry, I can't jump!!"
}
}
एक कक्षा 'व्यवहार डिफ़ॉल्ट रूप से वर्चुअल है, जिसका अर्थ है कि किसी भी वर्ग विधियों को किसी उप-वर्ग द्वारा ओवरराइड किया जा सकता है। इस प्रकार यह सी # और जावा जैसी भाषाओं में काम करता है, लेकिन उदाहरण के लिए, सी ++ में जरूरी नहीं है।
पदार्थ में, एक आधार वर्ग के व्यवहार केवल आभासी है और जब उपवर्गों कि आभासी व्यवहार को ओवरराइड "कई" (पाली) "अलग अलग रूपों" (morphs) मान सकते हैं। यही कारण है कि इसे पॉलिमॉर्फिज्म कहा जाता है। छद्म कोड में:
function makeAnimalSpeak(Animal animal) {
animal.speak();
}
makeAnimalSpeak(new Elephant()) // output: "hi, I am an elephant"
makeAnimalSpeak(new Horse()) // output: "hi, I am a horse"
अन्य लोगों ने आपको यहां बेहतर उदाहरण दिए हैं।
सी # और जावा जैसी भाषाओं में आपके पास इंटरफ़ेस (जो सी ++ में मौजूद नहीं है) का विचार है, जो केवल व्यवहार की घोषणा है। एक वर्ग के विपरीत, एक इंटरफ़ेस का व्यवहार लागू करने का कोई दायित्व नहीं है। यह सिर्फ एक घोषणा है। कोई भी वर्ग उस व्यवहार को लागू कर सकता है, चाहे वह किस आधार वर्ग से प्राप्त हो।स्यूडोकोड में:
interface FlyingBeing {
method fly()
}
class FlyingPig inherits from Animal implements FlyingBeing {
method fly() {
print "hey, look at me, I am a flying pig!!"
}
}
दोस्तों, पोस्टर स्पष्ट रूप से एक देशी अंग्रेजी वक्ता नहीं है, और वह उसके दो अंग्रेजी शब्दों कि प्रोग्रामिंग में भारी उपयोग किया जाता है के बाद से अपने पाठ्यपुस्तकों अरबी में लिखे गए हैं के बीच अंतर को समझने में मदद करने के लिए हमें पूछ रहा है। चूंकि वह अंग्रेजी को अच्छी तरह से नहीं जानता है, इसलिए वह उम्मीद कर रहा है कि एक भाषा में एक कोड स्निपेट जिसे वह समझता है उसे अंग्रेजी में स्पष्टीकरण के कई पैराग्राफ पढ़ने के बिना उसे पकड़ने में मदद मिलेगी। उसे एक ब्रेक दें। – StriplingWarrior
@ स्टिप नाइस थॉरी, लेकिन ओपी के पास अंग्रेजी भाषा का एक अच्छा कमान है: http://stackoverflow.com/questions/7325073/how-could-i-get-over-my-programming-problems। –
@ चतुरता: आह, ठीक है। लोगों को संदेह का लाभ देने के लिए बहुत कुछ। – StriplingWarrior