下面是一个继承加重载的一段程序请问最后输出的是啥?//父类
public class Instrument {
//输出弹奏乐器
public void play()
{
System.out.println("弹奏乐器");
}
}
public class Wind extends Instrument {
//输出弹奏Wind
public void play()
{
System.out.println("弹奏Wind");
}
//调用“输出的Wind”
public void play2()
{
this.play();
}
}
public class Brass extends Instrument {
//输出弹奏Brass
public void play()
{
System.out.println("弹奏Brass");
}
//调用"play"
public void play2()
{
Brass b =new Brass();
b.play();
}
}
public class Music {
//调用对象i play的方法
public static void tune(Instrument i)
{
i.play();
} public static void main(String[] args) { //调用Wind的方法
Wind w =new Wind();
tune(w);
//调用Brass的方法
Brass b = new Brass();
tune(b);
}
public class Instrument {
//输出弹奏乐器
public void play()
{
System.out.println("弹奏乐器");
}
}
public class Wind extends Instrument {
//输出弹奏Wind
public void play()
{
System.out.println("弹奏Wind");
}
//调用“输出的Wind”
public void play2()
{
this.play();
}
}
public class Brass extends Instrument {
//输出弹奏Brass
public void play()
{
System.out.println("弹奏Brass");
}
//调用"play"
public void play2()
{
Brass b =new Brass();
b.play();
}
}
public class Music {
//调用对象i play的方法
public static void tune(Instrument i)
{
i.play();
} public static void main(String[] args) { //调用Wind的方法
Wind w =new Wind();
tune(w);
//调用Brass的方法
Brass b = new Brass();
tune(b);
}
重载就是方法名相同但是参数不同 比如有参函数和无参函数
继承时一般都是重写父类的方法
wind 然后 bras
这里重写的是play方法,本身没有构造,也只调用了play(),所以调用的都是子类中的play方法。弹奏Wind
弹奏Brass
这里重写的是play方法,本身没有构造,也只调用了play(),所以调用的都是子类中的play方法。弹奏Wind
弹奏Brass
应该有一个想上转型的过程吧
tu他ne(b);的数据集类型是Brass然后
public static void tune(Instrument i)
{
i.play();
}
tune(括号内的数据类型为 Instrumen )由于Bress继承Instrumen 所以 tune能够接收 Bress类型的值,有隐式的向上造型
Instrumen i =new Bress();