1

嘿伙计们,我有一个叫做客户端的类。我想将它的功能分成两个子类:ClientListner 和 ClientSender。它自己的客户端有一个如下所示的构造函数:

客户端构造函数

public Client(Socket socket, PrintWriter pw, Scanner input, MainGui mg){
    this.mg = mg;
    this.socket = socket;
    this.input = input;
    this.pw = pw;
}

当我的其他两个类扩展这个客户端时,Eclipse 要求我实现构造函数并自动生成以下内容:

ClientSender 自动生成的构造函数

public ClientSender(Socket socket, PrintWriter pw, Scanner input, MainGui mg) {
    super(socket, pw, input, mg);
    // TODO Auto-generated constructor stub
}

因此,当我在我的 Gui 中并想创建一个新的 Clientlistner 时,我必须传递所有这些信息,难道没有办法避免这种情况吗?如果是这样怎么办?

4

3 回答 3

1

如果你不想在构造函数中传递任何东西,你可以no-arg在你的父类中有一个构造函数。

编辑:在你的Client类中只写这段代码它是一个no-arg构造函数:

public Client(){

}
于 2012-10-20T13:44:47.527 回答
0

假设您要用于ClientSender处理所有传出内容并ClientReceiver处理 a 的所有传入内容Client,它们应该是不同的类,它们采用套接字OutputStream并且InputStream一旦创建了客户端。因此,它们应该是 Client 类中的成员,而不是 Client 的子类型。

于 2012-10-20T13:47:53.910 回答
0

我将删除 Client 构造函数中的变量,因此它只包含 ClientListner 和 ClientSender 都使用的变量。

于 2012-10-20T13:49:26.820 回答