खोज…


परिचय

एक इंटरफ़ेस व्यवहार के एक सेट को परिभाषित करने का एक तरीका है जो एक वर्ग प्रदर्शन करेगा। एक इंटरफ़ेस की परिभाषा विधि हस्ताक्षर (नाम, पैरामीटर और वापसी प्रकार) की एक सूची है। सभी तरीकों वाले एक वर्ग को उस इंटरफ़ेस को "लागू" करने के लिए कहा जाता है।

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

तैरो चेक ...

पानी पर तैरता हुआ

पानी के नीचे तैरना



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow