search
HomeJavajavaTutorialHow does java implement polymorphism?

How does java implement polymorphism?

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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?Apr 19, 2025 pm 11:45 PM

Start Spring using IntelliJIDEAUltimate version...

How to elegantly obtain entity class variable names to build database query conditions?How to elegantly obtain entity class variable names to build database query conditions?Apr 19, 2025 pm 11:42 PM

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...

How to use the Redis cache solution to efficiently realize the requirements of product ranking list?How to use the Redis cache solution to efficiently realize the requirements of product ranking list?Apr 19, 2025 pm 11:36 PM

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...

How to safely convert Java objects to arrays?How to safely convert Java objects to arrays?Apr 19, 2025 pm 11:33 PM

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...

How do I convert names to numbers to implement sorting and maintain consistency in groups?How do I convert names to numbers to implement sorting and maintain consistency in groups?Apr 19, 2025 pm 11:30 PM

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

E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?Apr 19, 2025 pm 11:27 PM

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 default run configuration list of SpringBoot projects in Idea for team members to share?How to set the default run configuration list of SpringBoot projects in Idea for team members to share?Apr 19, 2025 pm 11:24 PM

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

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

MantisBT

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

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools