蓝
蓝色虾
Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下:
//: WindError.java
class NoteX{
//public static final int MIDDLE_C=0;
public static final NoteX MIDDLE_C=new NoteX();
public static final int C_SHARP=1,C_FLAT=2;
}
class InstrumentX{
public void play(NoteX NoteX){ //(1)
System.out.println("InstrumentX.play()");
} //(2)
}
class WindX extends InstrumentX{
public void play(NoteX n){
System.out.println("WindX.play(NoteX n)");
}
}
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);
}
}
这个是可以运行的,结果为 WindX.play(NoteX n)
我做了如下改动为何不能编译,第一种:我将(1)处的(NoteX NoteX)改为(int NoteX)程序就不能编译,为啥我在这儿不能理解为play()方法的过载?
第二种改动:我将(1)到(2)处的语句全部注释掉,程序又不能运行,为什么我不能理解为WindX继承了InstrumentX后自己独立拥有的方法?
下面这段程序代码是可以运行的,但结果不是我想要的WindX.play(NoteX n)而是InstrumentX.play()
代码如下:
//: WindError.java
class NoteX{
public static final int MIDDLE_C=0;
//public static final NoteX MIDDLE_C=new NoteX();
public static final int C_SHARP=1,C_FLAT=2;
}
class InstrumentX{
public void play(int NoteX){ //(1)
System.out.println("InstrumentX.play()");
}
}
class WindX extends InstrumentX{
public void play(NoteX n){
System.out.println("WindX.play(NoteX n)");
}
}
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);
}
}
//: WindError.java
class NoteX{
//public static final int MIDDLE_C=0;
public static final NoteX MIDDLE_C=new NoteX();
public static final int C_SHARP=1,C_FLAT=2;
}
class InstrumentX{
public void play(NoteX NoteX){ //(1)
System.out.println("InstrumentX.play()");
} //(2)
}
class WindX extends InstrumentX{
public void play(NoteX n){
System.out.println("WindX.play(NoteX n)");
}
}
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);
}
}
这个是可以运行的,结果为 WindX.play(NoteX n)
我做了如下改动为何不能编译,第一种:我将(1)处的(NoteX NoteX)改为(int NoteX)程序就不能编译,为啥我在这儿不能理解为play()方法的过载?
第二种改动:我将(1)到(2)处的语句全部注释掉,程序又不能运行,为什么我不能理解为WindX继承了InstrumentX后自己独立拥有的方法?
下面这段程序代码是可以运行的,但结果不是我想要的WindX.play(NoteX n)而是InstrumentX.play()
代码如下:
//: WindError.java
class NoteX{
public static final int MIDDLE_C=0;
//public static final NoteX MIDDLE_C=new NoteX();
public static final int C_SHARP=1,C_FLAT=2;
}
class InstrumentX{
public void play(int NoteX){ //(1)
System.out.println("InstrumentX.play()");
}
}
class WindX extends InstrumentX{
public void play(NoteX n){
System.out.println("WindX.play(NoteX n)");
}
}
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);
}
}