Polymorphism refers to which class instance object a reference variable will point to. The method call issued by the reference variable is a method implemented in which class. It must be in It can only be determined during the running of the program. (Recommended learning: java course)
Because the specific class is determined when the program is running, reference variables can be bound to each class without modifying the source program code. Different classes are implemented, which causes the specific method called by the reference to change accordingly. That is, the specific code bound to the program when it is running can be changed without modifying the program code, allowing the program to select multiple running states. This is polymorphism. sex.
Features:
The parent class reference pointing to the subclass has been transformed upward. It can only access the methods and properties owned by the parent class, and for the subclass If a method exists but does not exist in the parent class, the reference cannot be used, even if the method is overloaded.
If the subclass overrides some methods in the parent class, when calling these methods, the methods defined in the subclass must be used (dynamic connection, dynamic calling).
There are three necessary conditions for Java to achieve polymorphism: inheritance, rewriting, and upward transformation.
The priority method called, the priority is: this.show(O), super.show(O), this.show((super)O), super.show((super )O).
The implementation principle of polymorphism
The invocation of object methods in Java is implemented by relying on the method table in the class information.
In general, when a method of an object is called, the JVM looks up the method table of the object class to determine the direct reference address of the method, and only then actually calls the method after having the address.
The super class inherits the method of the parent class. If the method is not Overriding, the call will point to the method of the parent class. If Overrding the method, it points to the code area of the class.
But the super class will have the method table of the parent class.
We know that when a java program is running, class-related information is placed in the method area. Among this information is an area called the method table, which contains information about all methods defined by the type. and pointers to the actual code of these methods.
The above is the detailed content of How does java implement polymorphism?. For more information, please follow other related articles on the PHP Chinese website!