Visual Basic supports the four major defining concepts required for a language to be fully object-oriented:
Abstraction — Abstraction is merely the ability of a language to create "black box" code, to take a concept and create an abstract representation of that concept within a program. A
Customer object, for instance, is an abstract representation of a real-world customer. A
DataTable object is an abstract representation of a set of data.
Encapsulation — This is the concept of a separation between interface and implementation. The idea is that you can create an interface (
Public methods, properties, fields, and events in a class), and, as long as that interface remains consistent, the application can interact with your objects. This remains true even when you entirely rewrite the code within a given method — thus, the interface is independent of the implementation. Encapsulation enables you to hide the internal implementation details of a class. For example, the algorithm you use to compute pi might be proprietary. You can expose a simple API to the end user, but hide all the logic used by the algorithm by encapsulating it within your class.
Polymorphism — Polymorphism is reflected in the ability to write one routine that can operate on objects from more than one class — treating different objects from different classes in exactly the same way. For instance, if both the
Customer and the
Vendor objects have a
Name property and you can write a routine ...