实现如下类,编写测试类。在测试类中编写静态方法getinstrument(),返回类型是Instument的对象,静态方法实现随机产生由那种乐器进行演奏(产生3以内的随机整数,0返回Violin对象,1返回Erhu对象,2返回Instrument对象。在main方法中给出提示语“---欢迎--姓名--学号--来到演播厅---”,创建引用对象instument,根据getinstrument()方法得到instument实例化对象,调用对象的play()方法。若返回实例化对象是二胡,将对象的上转型对象再强制转换为二胡对象,然后再调用其新增方法playing()方法。
import java.util.Random;
public class Test {
public static void main(String[] args) {
System.out.println("---欢迎--姓名--学号--来到演播厅---");
Instument ins = getInstrument();
if(ins instanceof Erhu) {
((Erhu) ins).playing();
}else {
ins.play();
}
}
static Instument getInstrument() {
Random rnd = new Random();
int n = rnd.nextInt(3);
Instument ins=null;
switch(n) {
case 0:
ins = new Instument();
break;
case 1:
ins = new Erhu();
break;
case 2:
ins = new Violin();
break;
}
return ins;
}
}
class Instument{
void play() {
System.out.println("乐器演奏中");
}
}
class Erhu extends Instument{
void play() {
System.out.println("二胡演奏中...");
}
void playing() {
System.out.println("二泉映月...");
}
}
class Violin extends Instument{
void play() {
System.out.println("小提琴演奏中...");
}
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y