1

我有 mysocket 类,它扩展了 Socket 类..

class MySocket extends Socket {
    public int id;
}

现在我有一个从ServerSocket 的accept 方法得到的子类实例(Socket)。如何使用这个 Socket 实例来构造我的 MySockey 实例?

4

3 回答 3

1

Socket从某个地方得到一个,所以你最好使用一个包装器来添加一个id,比如:

public class SocketWrapper {
    private Socket socket;
    private int id;
    // getter, setter, ctors, ...
}
于 2013-02-14T17:34:09.503 回答
0

仅当您想向类本身添加一些附加功能时,才对类进行子类化才有意义。在您的情况下,您似乎只想使用套接字。所以@RC 建议的方法是正确的。您可以将 Socket 对象作为实例成员,而不是继承 Socket 类,并且可以为其分配 server.accept() 返回类型。

希望这可以帮助。

于 2013-02-14T17:47:30.997 回答
0

我同意包装而不是扩展 Socket 的建议。但是,如果您决定继续扩展,请向您的子类添加一个以 Socket 作为参数的构造函数。将 Socket 方法委托给它。

于 2013-02-14T17:43:10.890 回答