खोज…
परिचय
एक इंटरफ़ेस व्यवहार के एक सेट को परिभाषित करने का एक तरीका है जो एक वर्ग प्रदर्शन करेगा। एक इंटरफ़ेस की परिभाषा विधि हस्ताक्षर (नाम, पैरामीटर और वापसी प्रकार) की एक सूची है। सभी तरीकों वाले एक वर्ग को उस इंटरफ़ेस को "लागू" करने के लिए कहा जाता है।
VBA में, इंटरफेस का उपयोग करके कंपाइलर को जांचने की सुविधा मिलती है कि मॉड्यूल अपने सभी तरीकों को लागू करता है। एक चर या पैरामीटर को विशिष्ट वर्ग के बजाय इंटरफ़ेस के संदर्भ में परिभाषित किया जा सकता है।
सरल इंटरफ़ेस - उड़ने योग्य
इंटरफ़ेस Flyable
निम्न कोड वाला एक वर्ग मॉड्यूल है:
Public Sub Fly()
' No code.
End Sub
Public Function GetAltitude() As Long
' No code.
End Function
एक क्लास मॉड्यूल, Airplane
, संकलक को बताने के लिए Implements
कीवर्ड का उपयोग करता है जब तक कि इसमें दो विधियाँ न हों: एक Flyable_Fly()
उप और एक Flyable_GetAltitude()
फ़ंक्शन जो एक Long
रिटर्न देता है।
Implements Flyable
Public Sub Flyable_Fly()
Debug.Print "Flying With Jet Engines!"
End Sub
Public Function Flyable_GetAltitude() As Long
Flyable_GetAltitude = 10000
End Function
एक दूसरे श्रेणी का मॉड्यूल, Duck
, Flyable
भी लागू Flyable
:
Implements Flyable
Public Sub Flyable_Fly()
Debug.Print "Flying With Wings!"
End Sub
Public Function Flyable_GetAltitude() As Long
Flyable_GetAltitude = 30
End Function
हम एक ऐसी दिनचर्या लिख सकते हैं, जो किसी भी Flyable
मान को स्वीकार करती है, यह जानते हुए कि यह Fly
या GetAltitude
कमांड का जवाब GetAltitude
:
Public Sub FlyAndCheckAltitude(F As Flyable)
F.Fly
Debug.Print F.GetAltitude
End Sub
क्योंकि इंटरफ़ेस परिभाषित किया गया है, IntelliSense पॉपअप विंडो F
लिए Fly
और GetAltitude
दिखाएगा।
जब हम निम्नलिखित कोड चलाते हैं:
Dim MyDuck As New Duck
Dim MyAirplane As New Airplane
FlyAndCheckAltitude MyDuck
FlyAndCheckAltitude MyAirplane
आउटपुट है:
Flying With Wings!
30
Flying With Jet Engines!
10000
ध्यान दें कि भले ही सबरूटीन नाम पर है Flyable_Fly
दोनों में Airplane
और Duck
, यह कहा जा सकता है Fly
जब चर या पैरामीटर के रूप में परिभाषित किया गया है Flyable
। यदि चर को विशेष रूप से Duck
रूप में परिभाषित किया गया है, तो इसे Flyable_Fly
कहा जाएगा।
वन क्लास में मल्टीपल इंटरफेसेस - फ्लाईएबल और स्विमएबल
एक प्रारंभिक बिंदु के रूप में Flyable
करने Flyable
उदाहरण का उपयोग करते हुए, हम निम्नलिखित कोड के साथ, एक दूसरा इंटरफ़ेस, Swimmable
जोड़ सकते हैं:
Sub Swim()
' No code
End Sub
Duck
ऑब्जेक्ट उड़ान और तैराकी दोनों को Implement
कर सकता है:
Implements Flyable
Implements Swimmable
Public Sub Flyable_Fly()
Debug.Print "Flying With Wings!"
End Sub
Public Function Flyable_GetAltitude() As Long
Flyable_GetAltitude = 30
End Function
Public Sub Swimmable_Swim()
Debug.Print "Floating on the water"
End Sub
एक Fish
वर्ग Swimmable
को भी लागू कर सकता है:
Implements Swimmable
Public Sub Swimmable_Swim()
Debug.Print "Swimming under the water"
End Sub
अब, हम देख सकते हैं कि Duck
ऑब्जेक्ट को एक हाथ पर एक Flyable
रूप में एक सब के लिए पास किया जा सकता है, और दूसरे पर एक Swimmable
करने योग्य है:
Sub InterfaceTest()
Dim MyDuck As New Duck
Dim MyAirplane As New Airplane
Dim MyFish As New Fish
Debug.Print "Fly Check..."
FlyAndCheckAltitude MyDuck
FlyAndCheckAltitude MyAirplane
Debug.Print "Swim Check..."
TrySwimming MyDuck
TrySwimming MyFish
End Sub
Public Sub FlyAndCheckAltitude(F As Flyable)
F.Fly
Debug.Print F.GetAltitude
End Sub
Public Sub TrySwimming(S As Swimmable)
S.Swim
End Sub
इस कोड का आउटपुट है:
फ्लाई चेक ...
पंखों के साथ उड़ान!
30
जेट इंजन के साथ उड़ान!
10000
तैरो चेक ...
पानी पर तैरता हुआ
पानी के नीचे तैरना