我有 mysocket 类,它扩展了 Socket 类..
class MySocket extends Socket {
public int id;
}
现在我有一个从ServerSocket 的accept 方法得到的子类实例(Socket)。如何使用这个 Socket 实例来构造我的 MySockey 实例?
你Socket
从某个地方得到一个,所以你最好使用一个包装器来添加一个id
,比如:
public class SocketWrapper {
private Socket socket;
private int id;
// getter, setter, ctors, ...
}
仅当您想向类本身添加一些附加功能时,才对类进行子类化才有意义。在您的情况下,您似乎只想使用套接字。所以@RC 建议的方法是正确的。您可以将 Socket 对象作为实例成员,而不是继承 Socket 类,并且可以为其分配 server.accept() 返回类型。
希望这可以帮助。
我同意包装而不是扩展 Socket 的建议。但是,如果您决定继续扩展,请向您的子类添加一个以 Socket 作为参数的构造函数。将 Socket 方法委托给它。