p.s.自用
微信接收的消息类型有如下几种:
文本3/图片34/语音42/名片43/视频47/动态表情48/地理位置49/图文53/视频会话10000/系统消息4900001/转账4900002/红包
你可以从微信中收到以上的不同类型的消息,然后进行相应的处理,请编写代码,完成不同消息接收处理过程。
以上是该题的类图,请根据类图,完成代码
public class Main {
public static void main(String[] args) {
IMsg [] msgs = new IMsg[3];
msgs[0] = new VoiceMsg();
msgs[1]= new MoneyMsg(300);
msgs[2] = new TextMsg("我给你说哈....");
People p = new People();
p.read(msgs);
}
}
【】 IMsg{
public void beReadable();
}
class TextMsg 【】{
String text;
public TextMsg(String text){
this.text = text;
}
@Override
【】
}
class VoiceMsg 【】{
@Override
public void beReadable() {
sound();
}
public void sound(){
System.out.println("播放信息");
}
}
class MoneyMsg 【】{
double money;
public MoneyMsg(double money){
this.money = money;
}
@Override
【】
}
class People{
public void read(IMsg []msgs){
//处理每一条消息
【】
}
}
输入格式:
输出格式:
输出各种消息读出信息
输入样例:
18 -299
输出样例:
在这里给出相应的输出。例如:
播放信息
收钱:300.0
处理文本消息:我给你说哈....
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
参考答案
常规的考察接口和继承的题目……所以是为什么要在PTA禁用复制粘贴呢:(
public class Main {
public static void main(String[] args) {
IMsg[] msgs = new IMsg[3];
msgs[0] = new VoiceMsg();
msgs[1] = new MoneyMsg(300);
msgs[2] = new TextMsg("我给你说哈....");
People p = new People();
p.read(msgs);
}
}
interface IMsg {
public void beReadable();
}
class TextMsg implements IMsg {
String text;
public TextMsg(String text) {
this.text = text;
}
@Override
public void beReadable() {
System.out.println("处理文本消息:" + text);
}
}
class VoiceMsg implements IMsg {
@Override
public void beReadable() {
sound();
}
public void sound() {
System.out.println("播放信息");
}
}
class MoneyMsg implements IMsg {
double money;
public MoneyMsg(double money) {
this.money = money;
}
@Override
public void beReadable() {
System.out.println("收钱:" + money);
}
}
class People {
public void read(IMsg[] msgs) {
for (IMsg msg : msgs) {
msg.beReadable();
}
}
}