This article brings you a comparative introduction to method coverage and method overloading in Java. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Method signature
Method signature refers to the parameter type, order and number of the method. It does not include the method name.
Overloading
Overloading must meet the following conditions
The method name is the same
The parameter type, number and order of the method are at least different
The return type of the method can be different
The access modifier of the method can be different
Override
If defined in a subclass A method whose name, return type and parameter signature exactly match the name, return type and parameter signature of a method in the parent class, then the subclass overrides the method of the parent class.
Override must meet the following conditions:
The name, parameter signature and return type of the subclass method must be consistent with the parent class method.
Subclass methods cannot reduce the access rights of parent class methods.
If there is no such restriction, it will conflict with the polymorphism mechanism of the Java language.
//创建父类型的变量,引用子类的实例 Parent parent = new Child(); //调用的是子类实例的方法,如果子类覆盖这个方法时,缩小了访问权限,可能会造成无法访问到子类实例的这个方法 parent.method();
Subclass methods cannot throw more exceptions than parent class methods. The exceptions thrown by subclass methods must be the same as the exceptions thrown by parent class methods, or the exception class thrown by parent class methods is The parent class method throws an exception in the subclass of the class.
Method override only exists between the subclass and the parent class (including direct parent class and indirect parent class). Methods can only be overridden in the same class loaded and cannot be overridden.
The static method of the parent class cannot be overridden as a non-static method by the subclass.
The non-static method of the parent class cannot be overridden as a static method by the subclass
Private methods of the parent class cannot be overridden by subclasses
Non-abstract methods of the parent class can be overridden by subclasses as abstract methods
Similarities and differences
1. Similarities
Method names must be consistent
2. Differences
Method override requires parameter signatures to be consistent, while method overloading requires parameter signatures to be inconsistent.
Override requires return type Consistent, or the return type of the subclass method is smaller than the parent class method, overloading does not impose restrictions on this.
Override can only be used for subclasses to override methods of the parent class, and overloading is used for all methods of the same class (Including methods inherited from the parent class).
There are requirements for overriding the access permissions of methods and throwing exceptions, and there are no restrictions on overloading.
A method of the parent class can only Can be overridden once by a subclass, and a method can be overloaded multiple times in the class where it is located.
The above is the detailed content of A comparative introduction to method coverage and method overloading in Java. For more information, please follow other related articles on the PHP Chinese website!