Working with Visual Basic Interfaces

WEBINAR: On-demand webcast

How to Boost Database Development Productivity on Linux, Docker, and Kubernetes with Microsoft SQL Server 2017 REGISTER >

What Are Visual Basic Interfaces?

Visual Basic Interfaces describe the characteristics of methods, properties, and events, but leave the implementation details up to structures or classes. Interfaces define methods, properties, and events that classes can implement.

Visual Basic Interfaces have the following advantages:

  • You can use Interfaces when you cannot use class inheritance.
  • With Visual Basic Interfaces, you can define a single implementation that can implement multiple interfaces.
  • Interfaces are better in situations in which you do not have to inherit implementation from a base class.

Differences Between Visual Basic Interfaces and Visual Basic Classes

There are a few differences between interfaces and classes. These are as follows:

  • Interfaces should be implemented in classes as members tagged with the implements clause. Class members need no special suffixes.
  • Classes are able to inherit from one class and implement multiple interfaces whereas interfaces provide no implementation.
  • Interface members are public. Class members can use any access specifier.
  • Interfaces support multiple interface inheritance. Classes support single inheritance only.

Our Visual Basic Interface Project

Start Visual Studio and create a new Windows Forms project. Design your form to resemble Figure 1.

Design
Figure 1: Design

You will be creating two very small interfaces and implement each interface in a different class. Add a new class and name it Interface1. Replace the Class definition and add the following code:

Interface Interface1

   Sub Interface1_Sub_1()

End Interface

This creates an Interface named Interface1. Interface1 contains the signature for one Sub procedure. This sub procedure is named Interface1_Sub_1. Now, you need to make use of this interface. Add another class to your project and leave the default name (or, if you do rename it, please remember that when we refer to this class a bit later). Add the following code to your class:

Public Class Class1
   Implements Interface1

   Public Sub Class1_Sub_1() Implements _
         Interface1.Interface1_Sub_1

      MessageBox.Show("Interface 1")

   End Sub

End Class

The Class implements Interface1 and so does the Class's sub procedure named Class1_Sub_1.

Repeat the preceding steps to add another interface named Interface2 and another class that implements Interface2. The code for both is shown next:

Interface Interface2

   Property Interface2_Property_1 As Integer

End Interface

Public Class Class2
   Implements Interface2

   Property Class2_Property_1 As Integer Implements _
      Interface2.Interface2_Property_1

End Class

This is the same principle as Interface1 and Class1, expect that Interface2 exposes a property instead of an ordinary sub. The property inside the second class should also still implement the Interface.

Add the following code behind the button labelled 'Interface1' on your Form:

   Private Sub Button1_Click(sender As Object, e As EventArgs) _
         Handles Button1.Click

      Dim c1 As New Class1

      c1.Class1_Sub_1()

   End Sub

Once run, your program will produce a simple MessageBox. Add the following code behind the button labeled 'Interface 2':

   Private Sub Button2_Click(sender As Object, e As EventArgs) _
         Handles Button2.Click

      Dim c2 As New Class2

      c2.Class2_Property_1 = 25

      MessageBox.Show(c2.Class2_Property_1)

   End Sub

Here, you have manipulated the Interface property inside Class2 to be 25 and shown inside the resulting MessageBox.

As mentioned earlier, you can add and implement Interface Events as well. Here is an example of such an Interface:

Public Interface Interface3

   Event Interface3_Event_1(ByVal Success As Boolean)

End Interface

And its Implementation:

Public Class Class3
   Implements Interface3

   Public Event Interface3_Event_1(Success As Boolean) Implements _
      Interface3.Interface3_Event_1

End Class

Please feel free to download the zip file named "Interface_Ex" for your use in completing this project.

Conclusion

Interfaces are extremely important in Object-Oriented Programming and using them productively can save you tons of work. I hope you have benefited from this article.



About the Author

Hannes DuPreez

Hannes du Preez has been a Microsoft MVP for Visual Basic from 2008 to 2017. He loves technology and loves Visual Basic. He loves writing articles and proving that Visual Basic is more powerful than what most believe. You are most welcome to reach him at: ojdupreez1978@gmail.com

Related Articles

Downloads

Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • As all sorts of data becomes available for storage, analysis and retrieval - so called 'Big Data' - there are potentially huge benefits, but equally huge challenges...
  • The agile organization needs knowledge to act on, quickly and effectively. Though many organizations are clamouring for "Big Data", not nearly as many know what to do with it...
  • Cloud-based integration solutions can be confusing. Adding to the confusion are the multiple ways IT departments can deliver such integration...

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date