What is polymorphism in vb net
Show
Polymorphism and OverloadingFortunately, we don’t need to go into the details of polymorphism and overloading, which is just as well, because they tend to be both confusing and ambiguous. For instance, some computer scientists say that overloading is a form of polymorphism, whereas others say it is not. We will discuss only those issues that are directly relevant to the .NET Framework. OverloadingOverloading refers to an item being used in more than one way. Operator names are often overloaded. For instance, the plus sign (+) refers to addition of integers, addition of singles, addition of doubles, and concatenation of strings. Thus, the plus symbol (+) is overloaded. It’s a good thing, too; otherwise, we would need separate symbols for adding integers, singles, and doubles. Function names can also be overloaded. For instance, the absolute value function, Abs, can take an integer parameter, a single parameter, or a double parameter. Because the name Abs represents several different functions, it is overloaded. In fact, if you look at the documentation for the Abs member of the Math class (in the System namespace of the Framework Class Library), you will find the following declarations, showing the different functions using the Abs name: Overloads Public Shared Function Abs(Decimal) As Decimal Overloads Public Shared Function Abs(Double) As Double Overloads Public Shared Function Abs(Integer) As Short Overloads Public Shared Function Abs(Integer) As Integer Overloads Public Shared Function Abs(Long) As Long Overloads Public Shared Function Abs(SByte) As SByte Overloads Public Shared Function Abs(Single) As Single Note the use of the Specifically, a function name is overloaded when two defined functions use the same name but have different argument signatures. For instance, consider a function that retrieves a current account balance. The account could be identified either by the person’s name or by the account number. Thus, we might define two functions, each called GetBalance: Overloads Function GetBalance(sCustName As String) As Decimal Overloads Function GetBalance(sAccountNumber As Long) As Decimal Note also that VB.NET permits function overloading only because the argument signatures of the two functions are different, so that no ambiguity can arise. The function calls: GetBalance("John Smith") GetBalance(123456) are resolved by the compiler without difficulty, based on the data type of the argument. This type of overloading is often referred to as overloading the function GetBalance. On the other hand, there are two different functions here, so it seems more appropriate to say that the function name is being overloaded. Overloading is very common and not exclusive to object-oriented programming. PolymorphismThe term polymorphism means having or passing through many different forms. In the .NET Framework, polymorphism is tied directly to inheritance. Again, let us consider our Employee example. The function IncSalary is defined in three classes: the base class CEmployee and the derived classes CExecutive and CSecretary. Thus, the IncSalary function takes on three forms. This is polymorphism, VB.NET style. In case you are interested, many computer scientists would not consider this to be polymorphism. They would argue that the function IncSalary takes on only one form. It is the implementation that differs, not the function. They would refer to the situation described here for IncSalary as function overloading. The main point here is that there is a lot of confusion as to how Microsoft and others use the terms overloading and polymorphism, so you should be on guard when reading documentation. Get VB.NET Language in a Nutshell, Second Edition now with the O’Reilly learning platform. O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers. Skip to main content This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Object-oriented programming (Visual Basic)
In this articleVisual Basic provides full support for object-oriented programming including encapsulation, inheritance, and polymorphism. Encapsulation means that a group of related properties, methods, and other members are treated as a single unit or object. Inheritance describes the ability to create new classes based on an existing class. Polymorphism means that you can have multiple classes that can be used interchangeably, even though each class implements the same properties or methods in different ways. This section describes the following concepts:
Classes and objectsThe terms class and object are sometimes used interchangeably, but in fact, classes describe the type of objects, while objects are usable instances of classes. So, the act of creating an object is called instantiation. Using the blueprint analogy, a class is a blueprint, and an object is a building made from that blueprint. To define a class:
Visual Basic also provides a light version of classes called structures that are useful when you need to create large array of objects and do not want to consume too much memory for that. To define a structure:
For more information, see:
Class membersEach class can have different class members that include properties that describe class data, methods that define class behavior, and events that provide communication between different classes and objects. Properties and fieldsFields and properties represent information that an object contains. Fields are like variables because they can be read or set directly. To define a field:
Properties have get and set procedures, which provide more control on how values are set or returned. Visual Basic allows you either to create a private field for storing the property value or use so-called auto-implemented properties that create this field automatically behind the scenes and provide the basic logic for the property procedures. To define an auto-implemented property:
If you need to perform some additional operations for reading and writing the property value, define a field for storing the property value and provide the basic logic for storing and retrieving it:
Most properties have methods or procedures to both set and get the property value. However, you can create read-only or write-only properties to restrict them from being modified or read. In Visual Basic you can use For more information, see:
MethodsA method is an action that an object can perform. Note In Visual Basic, there are two ways to create a method: the To define a method of a class:
A class can have several implementations, or overloads, of the same method that differ in the number of parameters or parameter types. To overload a method:
In most cases you declare a method within a class definition. However, Visual Basic also supports extension methods that allow you to add methods to an existing class outside the actual definition of the class. For more information, see:
ConstructorsConstructors are class methods that are executed automatically when an object of a given type is created. Constructors usually initialize the data members of the new object. A constructor can run only once when a class is created. Furthermore, the code in the constructor always runs before any other code in a class. However, you can create multiple constructor overloads in the same way as for any other method. To define a constructor for a class:
For more information, see: Object Lifetime: How Objects Are Created and Destroyed. DestructorsDestructors are used to destruct instances of classes. In the .NET Framework, the garbage collector automatically manages the allocation and release of memory for the managed objects in your application. However, you may still need destructors to clean up any unmanaged resources that your application creates. There can be only one destructor for a class. For more information about destructors and garbage collection in the .NET Framework, see Garbage Collection. EventsEvents enable a class or object to notify other classes or objects when something of interest occurs. The class that sends (or raises) the event is called the publisher and the classes that receive (or handle) the event are called subscribers. For more information about events, how they are raised and handled, see Events.
Nested classesA class defined within another class is called nested. By default, the nested class is private.
To create an instance of the nested class, use the name of the container class followed by the dot and then followed by the name of the nested class:
Access modifiers and access levelsAll classes and class members can specify what access level they provide to other classes by using access modifiers. The following access modifiers are available:
For more information, see Access levels in Visual Basic. Instantiating classesTo create an object, you need to instantiate a class, or create a class instance.
After instantiating a class, you can assign values to the instance's properties and fields and invoke class methods.
To assign values to properties during the class instantiation process, use object initializers:
For more information, see:
Shared classes and membersA shared member of the class is a property, procedure, or field that is shared by all instances of a class. To define a shared member:
To access the shared member, use the name of the class without creating an object of this class:
Shared modules in Visual Basic have shared members only and cannot be instantiated. Shared members also cannot access non-shared properties, fields or methods For more information, see:
Anonymous typesAnonymous types enable you to create objects without writing a class definition for the data type. Instead, the compiler generates a class for you. The class has no usable name and contains the properties you specify in declaring the object. To create an instance of an anonymous type:
For more information, see: Anonymous Types. InheritanceInheritance enables you to create a new class that reuses, extends, and modifies the behavior that is defined in another class. The class whose members are inherited is called the base class, and the class that inherits those members is called the derived class. However, all classes in Visual Basic implicitly inherit from the Object class that supports .NET class hierarchy and provides low-level services to all classes. Note Visual Basic doesn't support multiple inheritance. That is, you can specify only one base class for a derived class. To inherit from a base class:
By default all classes can be inherited. However, you can specify whether a class must not be used as a base class, or create a class that can be used as a base class only. To specify that a class cannot be used as a base class:
To specify that a class can be used as a base class only and cannot be instantiated:
For more information, see:
Overriding membersBy default, a derived class inherits all members from its base class. If you want to change the behavior of the inherited member, you need to override it. That is, you can define a new implementation of the method, property or event in the derived class. The following modifiers are used to control how properties and methods are overridden:
InterfacesInterfaces, like classes, define a set of properties, methods, and events. But unlike classes, interfaces do not provide implementation. They are implemented by classes, and defined as separate entities from classes. An interface represents a contract, in that a class that implements an interface must implement every aspect of that interface exactly as it is defined. To define an interface:
To implement an interface in a class:
For more information, see:
GenericsClasses, structures, interfaces and methods in .NET can include type parameters that define types of objects that they can store or use. The most common example of generics is a collection, where you can specify the type of objects to be stored in a collection. To define a generic class:
To create an instance of a generic class:
For more information, see:
DelegatesA delegate is a type that defines a method signature, and can provide a reference to any method with a compatible signature. You can invoke (or call) the method through the delegate. Delegates are used to pass methods as arguments to other methods. Note Event handlers are nothing more than methods that are invoked through delegates. For more information about using delegates in event handling, see Events. To create a delegate:
To create a reference to a method that matches the signature specified by the delegate:
For more information, see:
See also
FeedbackSubmit and view feedback for What is polymorphism in .NET with example?Polymorphism means one name for many forms. Polymorphism means one object behaving in multiple forms. In other words, "Many forms of a single object is called Polymorphism." One function behaves differently in multiple forms.
What is polymorphism explain briefly?Polymorphism is a feature of object-oriented programming languages that allows a specific routine to use variables of different types at different times. Polymorphism in programming gives a program the ability to redefine methods for derived classes.
What is polymorphism and types?Polymorphism is the ability to process objects differently on the basis of their class and data types. As discussed, that polymorphism is of different types, for it to cover different types of data. Nd polymorphism has properties and methods.
What is inheritance and polymorphism in VB net?Inheritance describes the ability to create new classes based on an existing class. Polymorphism means that you can have multiple classes that can be used interchangeably, even though each class implements the same properties or methods in different ways.
|