Java – when the difference between methods is a parameter subtype, null is passed to the overriding method
•
Java
See English answer > which overload will get selected for null in Java? 3
Why does the virtual machine call this method f (null) {system. Out. Println ("B");}?
Why not f (null) {system. Out. Println ("a");}
public class Test{ public static class A {} public static class B extends A {} public void f(A a) {System.out.println("A");} public void f(B a) {System.out.println("B");} public static void main(String[] args) { new test().f(null); } }
Solution
Call the method with the most specific parameter type This is the rule
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码