使用超类实例构造子类

时间:2013-02-14 17:28:56

标签: java sockets

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

class MySocket extends Socket {
    public int id;
}

现在我有一个子类实例(Socket),我从ServerSocket的accept方法获得。如何使用此Socket实例构建MySockey实例?

3 个答案:

答案 0 :(得分:1)

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

public class SocketWrapper {
    private Socket socket;
    private int id;
    // getter, setter, ctors, ...
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

希望这有帮助。