7-2 处理微信消息

p.s.自用

微信接收的消息类型有如下几种:
文本3/图片34/语音42/名片43/视频47/动态表情48/地理位置49/图文53/视频会话10000/系统消息4900001/转账4900002/红包
你可以从微信中收到以上的不同类型的消息,然后进行相应的处理,请编写代码,完成不同消息接收处理过程。

a.png

以上是该题的类图,请根据类图,完成代码

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();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值