[英]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
,它们将采用套接字的OutputStream
和InputStream
。 因此,它们应该是Client类的成员,而不是Client的子类型。
我将删除Client构造函数中的变量,以便它仅包含ClientListner和ClientSender都使用的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.