我有延伸Socket类mysocket类..使用超类的实例构造子类
class MySocket extends Socket {
public int id;
}
现在我有我从接受的ServerSocket的方法得到了一个子类的实例(插座)。我如何使用这个Socket实例来构造我的MySockey实例?
我有延伸Socket类mysocket类..使用超类的实例构造子类
class MySocket extends Socket {
public int id;
}
现在我有我从接受的ServerSocket的方法得到了一个子类的实例(插座)。我如何使用这个Socket实例来构造我的MySockey实例?
你从哪儿找个Socket
所以你最好使用一个包装的id
添加到它,像:
public class SocketWrapper {
private Socket socket;
private int id;
// getter, setter, ctors, ...
}
我建议同意换,而不是扩展插槽。但是,如果您决定继续使用扩展,请为您的子类添加一个构造函数,并将Socket作为参数。委托Socket方法。
只有当你想向类本身添加一些额外的功能时,子类才是有意义的。在你的情况下,你似乎只想使用套接字。所以@RC建议的方法是正确的。您可以将一个Socket对象作为一个实例成员,并且可以为其分配server.accept()返回类型,而不是继承Socket类。
希望这会有所帮助。
Java!= C++。类不以分号结尾。 – 2013-02-14 17:30:11
我不确定你的意思。你确定你真的想要一个'Socket'子类吗? – 2013-02-14 17:30:13
为什么要扩展Socket类?考虑换行。阅读本文:http://www.artima.com/designtechniques/compoinh.html – 2013-02-14 17:33:30