【发布时间】:2017-06-21 21:51:05
【问题描述】:
我有以下课程
class Message{
private List content;
private String messageType;
public Message(String messageType, List content){
this.content = content;
this.messageType = messageType;
}
}
好吧,现在想象一下我想发送不同的消息类型。例如,消息类型“朋友”。我想将他们的 ID 号(例如int)存储为查找他们姓名(String)的密钥。这提醒我应该使用HashMap 类。或者一个简单的String,随便。以及其他更多我需要使用其他对象类型的情况。
这里的主要问题是:我应该如何继续编写具有两个属性的类:
- 第一个存储消息的类型
- 第二个是内容本身,应该可以是任何一种对象
我已经读过强制转换是一种不好的做法,所以我不想将 content 声明为对象,然后将其强制转换为消息类型的函数。
我的想法:
- 将消息声明为抽象类,然后在消息类型的函数中实现子类。我在这里没有得到的是,如果我在
Message类中声明像getContent()这样的抽象方法,我需要稳定它返回的数据类型,什么让我回到主要问题。这种方式没用,因为我需要发送Message而不是子类。
【问题讨论】:
-
当谈到“多态性”时,如果你的类没有任何行为,那就没有任何意义。
标签: java types casting polymorphism message