[英]constructing sub class using super class instance
我有mysocket类,它扩展了Socket类。
class MySocket extends Socket {
public int id;
}
现在我有一个子类实例(套接字),它是从ServerSocket的accept方法获得的。 如何使用此Socket实例构造MySockey实例?
您可以从某个地方获得一个Socket
,因此最好使用包装器向其添加id
,例如:
public class SocketWrapper {
private Socket socket;
private int id;
// getter, setter, ctors, ...
}
我同意包装而不是扩展Socket的建议。 但是,如果您决定继续使用扩展,请向您的子类添加一个以Socket作为参数的构造函数。 将Socket方法委托给它。
仅当您想向类本身添加一些其他功能时,对类进行子类化才有意义。 在您的情况下,您似乎只想使用套接字。 因此,@ RC建议的方法是正确的。 可以将Socket对象作为实例成员,而不是子类化Socket类,并且可以为其分配server.accept()返回类型。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.