繁体   English   中英

用构造函数扩展类

[英]Extending a class with a constructor

大家好,我有一堂课叫客户。 我想将其功能分为两个子类: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时,我必须传递所有这些信息,有没有办法避免这种情况? 如果可以,怎么办?

如果您不想在构造函数中传递任何内容,则可以在父类中使用no-arg构造函数。

编辑:在您的Client类中,只需编写以下代码,它是一个no-arg构造函数:

public Client(){

}

假设您要使用ClientSender处理所有传出的内容,并使用ClientReceiver处理Client所有传入的内容,它们应该是不同的类,一旦创建Client ,它们将采用套接字的OutputStreamInputStream 因此,它们应该是Client类的成员,而不是Client的子类型。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM