This paper summarizes the concepts and differences of polymorphism, overloading and rewriting in C #. For beginners in C # friends have a good reference value. Share to everyone for your reference. The specific analysis is as follows:
Rewrite
:
Is the method that overrides the base class, the method in the base class must have the modifier virtual, and the override must be indicated in the method of the subclass
。
The format is as follows:
1. In the base class:
public virtual void MyMethod () {}
2. In the subclass:
public override void MyMethod () {}
After rewriting, the MyMethod () method is accessed with base class objects and subclass objects, and the result is access to methods redefined in the subclass, and the method of the base class is equivalent to being overwritten.
Overload:
Used to select an optimal function member to implement the invocation given the argument list and a set of candidate function members
。
public void Test (int x,int y) {}public void test (int x,ref int y) {}public void test (int x,int y,string a) {}
Features of overloading:
I.
Method names must be the same
Ii.
The argument list must be different, regardless of the order of the parameter list
Iii.
Return value types can be different
But if there is a generic type, you should pay attention!
Polymorphic:
C # polymorphism is mainly embodied in the inheritance of class
:
When a subclass inherits from a parent class, there may be cases with the same name but different method definitions.
Therefore, the original method will be overridden in the subclass to achieve its own requirements.
Here are two points to note:
①. A method that can be overridden in a subclass must be marked as virtual, abstract, and override (override) The function marked as virtual and abstract is created for rewriting, The function marked as override is itself overridden by the first two functions, so it is also logical that it can be rewritten;
②. The overridden function must appear in the subclass, and any function of the parent class can be overridden only once in one of its subclasses. (This is a good understanding that when you want to rewrite two times, the subclass will define two return types, the method name and the parameter list are the same function, which is certainly not possible).
It is believed that this article has some reference value for the study of C # program design.
In addition to the Declaration,
Running GuestArticles are original, reproduced please link to the form of the address of this article
Polymorphism, overloading, overriding differential analysis in C #
This address: http://www.paobuke.com/develop/c-develop/pbk23494.html
Related content. NET WinForm Implementation method for adding ProgressBar in ListView C # Rx's main interface in-depth understanding of C # Dynamic types, and dynamic object creation, merging 2 objects, map instance C # application Npoi get pictures in Excel, Save to local algorithm
C # datetime.tostring generates appropriate time formats for different languages understanding lambda expressions in C # Remove substrings from a specified position in a string C # methods for generating code128 barcodes
Polymorphism, overloading, overriding differential analysis in C #