Home Java javaTutorial What is the difference between rewriting and overloading in java

What is the difference between rewriting and overloading in java

Oct 16, 2020 pm 01:42 PM
java rewrite Overload

Difference: Rewriting is when a subclass rewrites the implementation process of a method that allows access to the parent class. The method name and parameter list are the same, and the return value and formal parameters cannot be changed. Overloading is when multiple functions of the same name with different number or types of parameters exist in the same class at the same time, with the same method name and different parameter lists.

What is the difference between rewriting and overloading in java

Related recommendations: "Java Video Tutorial"

##Q: What are Java overloading and rewriting? What's the difference?

Answer:

 
Overload (Overload) is a means for a class to process different types of data in a unified way. Functions with the same name with different number or types of parameters (the return value type can be arbitrary, and the return type cannot be used as the criterion for distinguishing overloaded functions) exist in the same class at the same time, which is polymorphism in a class A manifestation of polymorphism (when calling a method, determines which method to use by passing different number of parameters and parameter types ).

What is the difference between rewriting and overloading in java

Figure 1. An overloading example in an Android class
What is the difference between rewriting and overloading in java
Override

(Override) is the parent class and The essence of polymorphism between subclasses is to redefine the functions of the parent class. If a method defined in a subclass has the same name and parameters as its parent class, the method will be rewritten, but the access of the subclass function The modification permission cannot be less than that of the parent class; if a method in the subclass has the same method name, return type and parameter list as a method in the parent class, the new method will overwrite the original method. If the original method in the parent class is required The method can use the super keyword.

What is the difference between rewriting and overloading in java

Figure 2. A common overriding example in Android classes
What is the difference between rewriting and overloading in java----------

** Overloading rules: ** must have different parameter lists; can have different return types; can have different access modifiers; can throw different exceptions.

Rewriting rules:

The parameter list must be exactly the same as the overridden method, otherwise it cannot be called an override; the return type must always be the same as the overridden method , otherwise it cannot be called an override; The access modifier limit must be greater than or equal to the access modifier of the overridden method; the overridden method must not throw a new checked exception or be broader than the overridden method declaration Checked exceptions, for example, the parent class method declares a checked exception IOException. When overriding this method, you cannot throw Exception. You can only throw subclass exceptions of IOException, and you can throw unchecked exceptions.

Overloading and rewriting are different manifestations of Java polymorphism.  
Rewriting is a manifestation of polymorphism between the parent class and the subclass, which works at runtime (dynamic polymorphism, such as dynamic binding)  
Overloading is a manifestation of polymorphism in a class, which takes effect at compile time (static polymorphism, such as static binding).


Q: Can Java constructors be overridden and overloaded? Answer:

Overriding is a method in which a subclass method overrides a parent class method. The overridden method name remains unchanged, and the class constructor method name must be consistent with the class name. Assuming that if the construction method of the parent class can be overridden by the subclass, the class name of the subclass must be consistent with the class name of the parent class, so

Java's construction method
cannot be overridden . The overloading is for the same one, so the construction method can be overloaded .

Q: What is the result of the following program and why?

public class Demo {
    public boolean equals( Demo other) {
        System.out.println("use Demo equals." );
        return true;    }
    public static void main(String[] args) {    
    Object o1 =new Demo ();
    Object o2 =new Demo ();        
    Demo o3 =new Demo ();
    Demo o4 =new Demo ();

   if (o1.equals(o2)) {
            System.out.println("o1 is equal with o2.");
        }

   if(o3.equals(o4)) {             
            System.out.println("o3 is equal with o4.");
        }
    }}
Copy after login
Answer: The results of the above program are as follows.

use Demo equals.
o3 is equal with o4.
Copy after login
Because the public boolean equals(Demo other) method in the Demo class does not override the public boolean equals(Object obj) method in the Object class, the reason is that it violates the parameter rules, one of which is the Demo type The other one is of type Object, so these two methods are in an overloading relationship (occurring at compile time) rather than an overriding relationship;

So when o1.equals(o2) is called, o2 is an Object type parameter, in fact The public boolean equals(Object obj) method

in the Object class is called, because at compile time o1 and o2 are both Object types, and the

equals method of the Object class returns false by comparing the memory address. ;When o3.equals(o4) is called, the equals(Demo other) method in the Demo class is actually called. Because o3 and o4 are both of Demo type at compile time, the above printing is there.

The above is the detailed content of What is the difference between rewriting and overloading in java. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
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

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

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Perfect Number in Java Perfect Number in Java Aug 30, 2024 pm 04:28 PM

Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Smith Number in Java Smith Number in Java Aug 30, 2024 pm 04:28 PM

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

Java Spring Interview Questions Java Spring Interview Questions Aug 30, 2024 pm 04:29 PM

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Break or return from Java 8 stream forEach? Break or return from Java 8 stream forEach? Feb 07, 2025 pm 12:09 PM

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Java Program to Find the Volume of Capsule Java Program to Find the Volume of Capsule Feb 07, 2025 am 11:37 AM

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

Create the Future: Java Programming for Absolute Beginners Create the Future: Java Programming for Absolute Beginners Oct 13, 2024 pm 01:32 PM

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.

See all articles