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!

Start Spring using IntelliJIDEAUltimate version...

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

Java...

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

How to set the SpringBoot project default run configuration list in Idea using IntelliJ...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version
Useful JavaScript development tools