Difference between Java rewriting and overloading
Override
Override is a subclass's rewriting of the implementation process of the parent class's methods that allow access. Neither the return value nor the formal parameters can be changed. That is, the shell remains unchanged and the core is rewritten!
The advantage of overriding is that subclasses can define their own behavior as needed. In other words, subclasses can implement the methods of the parent class as needed.
Overriding methods cannot throw new checked exceptions or exceptions that are broader than the overridden method declaration. For example: A method of the parent class declares a checked exception IOException, but when overriding this method, it cannot throw an Exception exception, because Exception is the parent class of IOException and can only throw exceptions of subclasses of IOException.
Method overriding rules
The parameter list must be exactly the same as that of the overridden method;
The return type must be exactly the same as the return type of the overridden method;
Access permissions cannot be lower than the access permissions of overridden methods in the parent class. For example: If a method of the parent class is declared as public, then the method cannot be declared as protected when overriding it in the subclass.
Member methods of the parent class can only be overridden by its subclasses.
Methods declared as final cannot be overridden.
Methods declared as static cannot be overridden, but can be declared again.
If the subclass and the parent class are in the same package, then the subclass can override all methods of the parent class, except for methods declared as private and final.
The subclass and the parent class are not in the same package, then the subclass can only override the non-final methods of the parent class that are declared public and protected.
The overridden method can throw any non-mandatory exception, regardless of whether the overridden method throws an exception. However, an overridden method cannot throw new mandatory exceptions, or mandatory exceptions that are broader than those declared by the overridden method, and vice versa.
Constructor methods cannot be overridden.
If you cannot inherit a method, you cannot override this method.
Overload(Overload)
Overloading (overloading) is in a class, the method name is the same, but the parameters are different. The return types can be the same or different.
Each overloaded method (or constructor) must have a unique parameter type list.
Only constructors can be overloaded
Overloading rules
The overloaded method must change the parameter list (the number, type or order of parameters are different);
The overloaded method can change the return type;
The overloaded method can change the access modifier;
The overloaded method can declare new or wider Checked exceptions;
Methods can be overloaded in the same class or in a subclass.
The return value type cannot be used as the criterion for distinguishing overloaded functions
Summary
Overriding and overloading of methods (Overloading) is a different manifestation of polymorphism in Java. Overwriting is a manifestation of polymorphism between parent classes and subclasses. Overloading is a manifestation of polymorphism in a class.
The above is the entire content of this article. I hope that the content of this article can bring some help to everyone's study or work. I also hope to support the PHP Chinese website!
For more articles related to the difference between Java rewriting and overloading, please pay attention to the PHP Chinese website!

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

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

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

Hot Topics



Discussing the hierarchical architecture problem in back-end development. In back-end development, common hierarchical architectures include controller, service and dao...

How to use OAuth2.0's access_token to achieve control of interface access permissions? In the application of OAuth2.0, how to ensure that the...

Discussing the hierarchical architecture in back-end development. In back-end development, hierarchical architecture is a common design pattern, usually including controller, service and dao three layers...

Questions and Answers about constant acquisition in Java Remote Debugging When using Java for remote debugging, many developers may encounter some difficult phenomena. It...

How to convert names to numbers to implement sorting within groups? When sorting users in groups, it is often necessary to convert the user's name into numbers so that it can be different...

Confused with choosing Java project management tools for beginners. For those who are just beginning to learn backend development, choosing the right project management tools is crucial...

Analysis of class loading behavior of SPI mechanism when Tomcat loads Spring-Web modules. Tomcat is used to discover and use the Servle provided by Spring-Web when loading Spring-Web modules...

Regarding the analysis method of IntelliJIDEA cracking in the programming world, IntelliJ...
