Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
35 lines (27 loc) · 1.18 KB

File metadata and controls

35 lines (27 loc) · 1.18 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package MethodOverloading;
public class NullTest1 {
/*
* If more than one member method is both accessible and applicable to a method invocation,
* it is necessary to choose one to provide the descriptor for the run-time method dispatch.
*
* The Java programming language uses the rule that the most specific method is chosen.
* */
public static void method(Object obj){
System.out.println("method with param type - Object");
}
public static void method(String obj){
System.out.println("method with param type - String");
}
// public static void method(StringBuffer strBuf){
// System.out.println("method with param type - StringBuffer");
// }
/*
* Why is the compiler not able to pick 'the most specific' here - because both "String" and "StringBuffer" are are sub-classes.
of the Object class, but without being in the same inheritance hierarchy. For finding
'the most specific' method, the compiler needs to find a method having the parameter type,
which is a sub-class of the parameter types of all other overloaded methods.
* */
public static void main(String [] args){
method(null);
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.