Home  >  Article  >  Java  >  The difference between overloading and rewriting in java

The difference between overloading and rewriting in java

(*-*)浩
(*-*)浩Original
2019-11-11 09:30:3010959browse

The difference between overloading and rewriting in java

##Override (Recommended learning: java course)

Literally, override is Meaning to write it again. In fact, it is to 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 the method name, parameter list, return type (except the return value of the method in the subclass When the return value of the method in the parent class is the same as the subclass), modifying or rewriting the method body is called rewriting. However, it should be noted 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 ");
    }

}

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) are considered overloads. At the same time, overloading has no requirement for return types, which can be the same or different, but overloading cannot be judged 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);
    }
}

During the interview, asked: What is the difference between overload and override?

Answer:

Overloading and rewriting of methods are both ways to achieve polymorphism. The difference is that the former implements compile-time polymorphism, while the latter implements run-time polymorphism. 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. Between the subclass and 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. The overridden method of the parent class declares more exceptions (Liskov substitution principle).

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

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