For your first part of the question, I think Wikipedia provides a good definition:
- - , , - . , ( ()) , , . , , .
Wikipedia, - , , . " , " .
Java , , . Java . , , . , Serializable Cloneable, . , , Java . .
, .
, , . , , , .
, , , , . , , .
Java (JLS) 15.12 , , .
, . JLS 15.12.2:
, , .
, .
, , .
public class ChooseMethod {
public void doSomething(Number n){
System.out.println("Number");
}
}
, .
public class MethodChooser {
public static void main(String[] args) {
ChooseMethod m = new ChooseMethod();
m.doSomething(10);
}
}
main, Number.
ChooseMethod ( ).
public void doSomething(Integer i) {
System.out.println("Integer");
}
main, Number.
, . MethodChooser ( ) , Integer.
, , , .
, , .
, , .
public class ChooseMethodA {
public void doSomething(Number n){
System.out.println("Number A");
}
}
:
public class ChooseMethodB extends ChooseMethodA { }
MethodChooser :
public class MethodChooser {
public static void main(String[] args) {
ChooseMethodA m = new ChooseMethodB();
m.doSomething(10);
}
}
, Number A, , ChooseMethodB, ChooseMethodA.
MethodChooserB:
public void doSomething(Number n){
System.out.println("Number B");
}
, .
Number B
, , MethodChooser.