亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table of Contents
Overload
During the interview, I was asked: What is the difference between overloading and overriding?
Home Java JavaBase What is the difference between overloading and rewriting in java

What is the difference between overloading and rewriting in java

Jan 06, 2023 pm 02:14 PM
java

Difference: 1. Overloading implements compile-time polymorphism, while rewriting implements run-time polymorphism. 2. Overloading occurs in a class, and the parameter list of the method with the same name must be different; while overwriting occurs between a subclass and a parent class, the overriding method of the overridden method must be the same. 3. The return type of an overloaded method can be modified, but the overridden method cannot. 4. The exceptions of overloaded methods can be modified, and the exceptions of overridden methods can be reduced or deleted. New or wider exceptions must not be thrown. 5. The access of overloaded methods can be modified, but the access of overridden methods must not be more strictly restricted.

What is the difference between overloading and rewriting in java

The operating environment of this tutorial: windows7 system, java8 version, DELL G3 computer.

Override

Literally, override means to write it again. In fact, rewrite the methods of the parent class itself in the subclass. The subclass inherits the original method of the parent class, but sometimes the subclass does not want to inherit a method in the parent class unchanged, so In the method name, parameter list, return type (except for the method in the subclass When the return value is the same as the return value of the method in the parent class (subclass), Modify or rewrite the method body, which is rewriting. But please note that The access modification permissions of subclass functions cannot be less than those of the parent class.
For example:

public class Father {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Son s = new Son();
        s.sayHello();
    }

    public void sayHello() {
        System.out.println("Hello");
    }
}

class Son extends Father{

    @Override
    public void sayHello() {
        // TODO Auto-generated method stub
        System.out.println("hello by ");
    }

}

Rewrite summary:

1. Occurs between parent class and child class
2. The method name, parameter list, and return type (except that the return type of the method in the subclass is a subclass of the return type in the parent class) must be the same
3. The restriction of the access modifier must be greater than that of the overridden method Access modifier (public>protected>default>private)
4. The overridden method must not throw a new checked exception or a checked exception that is broader than the overridden method declaration


Overload

In a class, if the method with the same name has different parameter lists (different parameter types, different number of parameters or even different parameter order) is considered an overload. At the same time, overloading has no requirement for return types, which can be the same or different, but cannot judge overloading by whether the return types are the same.

For example:

public class Father {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Father s = new Father();
        s.sayHello();
        s.sayHello("wintershii");

    }

    public void sayHello() {
        System.out.println("Hello");
    }

    public void sayHello(String name) {
        System.out.println("Hello" + " " + name);
    }
}

Overload summary:

1. Overload Overload is polymorphism in a class A manifestation
2. Overloading requires that the parameter list of the method with the same name is different (parameter type, number of parameters and even parameter order)
3. When overloading, the return value type can be the same or different. The return type cannot be used as the criterion for distinguishing overloaded functions


During the interview, I was asked: What is the difference between overloading and overriding?

Answer: Method overloading and rewriting are both ways to achieve polymorphism. The difference is that the former implements compile-time polymorphism, while the latter implements run-time polymorphism. .

Overloading occurs in a class. If a method with the same name has a different parameter list (different parameter types, different number of parameters, or both), it is considered an overload; overriding occurs in a subclass. With the parent class, overriding requires that the overridden method of the subclass has the same parameter list as the overridden method of the parent class, has a compatible return type, is easier to access than the overridden method of the parent class, and cannot be compared to the overridden method of the parent class. Override methods to declare more exceptions (Liskov substitution principle).

Overloading has no special requirements for the return type and cannot be distinguished based on the return type.

Differences Overloading method Overriding method
Parameter list Must be modified Must not be modified
Return type Can be modified Must not be modified
Exceptions can be modified can be reduced or deleted, new or wider exceptions must not be thrown
Access Can be modified Must not make stricter restrictions (restrictions can be lowered)

Summary

Overriding and overloading of methods are different manifestations of java polymorphism. Overriding is polymorphism between parent classes and subclasses. A manifestation of sex, overloading can be understood as a specific manifestation of polymorphism.

  • (1) Method overloading is a class that defines multiple methods with the same name, but the number of their parameters is different or the number is the same but the type and order are different, it is called a method. Overloading.

  • (2) Method overriding is a method in which a method in a subclass has the same name as the method in the parent class, and the number and type of parameters are the same, and the return value is also the same. It's called overriding.

  • (3) Method overloading is a polymorphic manifestation of a class, while method overriding is a polymorphic manifestation of a subclass and a parent class.

What is the difference between overloading and rewriting in java

For more programming-related knowledge, please visit: Programming Teaching! !

The above is the detailed content of What is the difference between overloading and rewriting 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

Undress AI Tool

Undress AI Tool

Undress images for free

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.

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)

Hot Topics

PHP Tutorial
1488
72
VSCode settings.json location VSCode settings.json location Aug 01, 2025 am 06:12 AM

The settings.json file is located in the user-level or workspace-level path and is used to customize VSCode settings. 1. User-level path: Windows is C:\Users\\AppData\Roaming\Code\User\settings.json, macOS is /Users//Library/ApplicationSupport/Code/User/settings.json, Linux is /home//.config/Code/User/settings.json; 2. Workspace-level path: .vscode/settings in the project root directory

How to handle transactions in Java with JDBC? How to handle transactions in Java with JDBC? Aug 02, 2025 pm 12:29 PM

To correctly handle JDBC transactions, you must first turn off the automatic commit mode, then perform multiple operations, and finally commit or rollback according to the results; 1. Call conn.setAutoCommit(false) to start the transaction; 2. Execute multiple SQL operations, such as INSERT and UPDATE; 3. Call conn.commit() if all operations are successful, and call conn.rollback() if an exception occurs to ensure data consistency; at the same time, try-with-resources should be used to manage resources, properly handle exceptions and close connections to avoid connection leakage; in addition, it is recommended to use connection pools and set save points to achieve partial rollback, and keep transactions as short as possible to improve performance.

Mastering Dependency Injection in Java with Spring and Guice Mastering Dependency Injection in Java with Spring and Guice Aug 01, 2025 am 05:53 AM

DependencyInjection(DI)isadesignpatternwhereobjectsreceivedependenciesexternally,promotingloosecouplingandeasiertestingthroughconstructor,setter,orfieldinjection.2.SpringFrameworkusesannotationslike@Component,@Service,and@AutowiredwithJava-basedconfi

python itertools combinations example python itertools combinations example Jul 31, 2025 am 09:53 AM

itertools.combinations is used to generate all non-repetitive combinations (order irrelevant) that selects a specified number of elements from the iterable object. Its usage includes: 1. Select 2 element combinations from the list, such as ('A','B'), ('A','C'), etc., to avoid repeated order; 2. Take 3 character combinations of strings, such as "abc" and "abd", which are suitable for subsequence generation; 3. Find the combinations where the sum of two numbers is equal to the target value, such as 1 5=6, simplify the double loop logic; the difference between combinations and arrangement lies in whether the order is important, combinations regard AB and BA as the same, while permutations are regarded as different;

Troubleshooting Common Java `OutOfMemoryError` Scenarios Troubleshooting Common Java `OutOfMemoryError` Scenarios Jul 31, 2025 am 09:07 AM

java.lang.OutOfMemoryError: Javaheapspace indicates insufficient heap memory, and needs to check the processing of large objects, memory leaks and heap settings, and locate and optimize the code through the heap dump analysis tool; 2. Metaspace errors are common in dynamic class generation or hot deployment due to excessive class metadata, and MaxMetaspaceSize should be restricted and class loading should be optimized; 3. Unabletocreatenewnativethread due to exhausting system thread resources, it is necessary to check the number of threads, use thread pools, and adjust the stack size; 4. GCoverheadlimitexceeded means that GC is frequent but has less recycling, and GC logs should be analyzed and optimized.

python pytest fixture example python pytest fixture example Jul 31, 2025 am 09:35 AM

fixture is a function used to provide preset environment or data for tests. 1. Use the @pytest.fixture decorator to define fixture; 2. Inject fixture in parameter form in the test function; 3. Execute setup before yield, and then teardown; 4. Control scope through scope parameters, such as function, module, etc.; 5. Place the shared fixture in conftest.py to achieve cross-file sharing, thereby improving the maintainability and reusability of tests.

How to work with Calendar in Java? How to work with Calendar in Java? Aug 02, 2025 am 02:38 AM

Use classes in the java.time package to replace the old Date and Calendar classes; 2. Get the current date and time through LocalDate, LocalDateTime and LocalTime; 3. Create a specific date and time using the of() method; 4. Use the plus/minus method to immutably increase and decrease the time; 5. Use ZonedDateTime and ZoneId to process the time zone; 6. Format and parse date strings through DateTimeFormatter; 7. Use Instant to be compatible with the old date types when necessary; date processing in modern Java should give priority to using java.timeAPI, which provides clear, immutable and linear

Understanding the Java Virtual Machine (JVM) Internals Understanding the Java Virtual Machine (JVM) Internals Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

See all articles