##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!