A和B比较,当参数顺序不一样时,也可以 A和以C比较,当参数类型不一样时,也可以 A和D比较,当参数个数不一样时,也可以 A和E,F比较,当参数类型,顺序或者个数不一样时,返回值是可以不一样的 A和G比较,当参数一样时,返回值是不能不同的 public void fun(String t, int i) { //A } public void fun(int i, String t) { //B } public void fun(int i, int t) { //C System.out.println("in (int ,int )"); } public void fun(String t, int i, int c) { //D } public int fun(char t, int i) { //E System.out.println("in int fun"); return 3; } public int fun(char t) { //F System.out.println("in int fun"); return 3; }
// public int fun(String t, int i) {//syntax error
// //G
// return 3;
// }
再如下例
class NoteX { public static final int MIDDLE_C = 0, C_SHARP = 1, C_FLAT = 2;
}
class InstrumentX { public void play(int NoteX)
{ System.out.println("InstrumentX.play()"); }
}
class WindX extends InstrumentX { public void play(NoteX n)
{ System.out.println("WindX.play(NoteX n)"); }
}
class WindM extends InstrumentX { public void play(int n)
{ System.out.println("WindM.play(int n)"); }
}
class WindY extends InstrumentX { public int play(NoteX n)
{ System.out.println("WindY.play(NoteX n)"); return 1; }
}
//systax error
//class WindZ extends InstrumentX { // public int play(int
n) { // System.out.println("WindZ.play(int n)"); // return 1; // } //}
public class WindError { public static void tune(InstrumentX i) { i.play(NoteX.MIDDLE_C); }
public static void main(String[] args) { WindX flute = new WindX(); tune(flute); WindM windm = new WindM(); tune(windm); WindY windy = new WindY(); tune(windy); }
}
输出结果:
InstrumentX.play()
WindM.play(int n)
InstrumentX.play()