嘿伙计们我有一个叫做客户的课程。我想将其功能分为两个子类: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要求我实现construcktor并自动生成以下内容:
ClientSender自动生成的构造函数
public ClientSender(Socket socket, PrintWriter pw, Scanner input, MainGui mg) {
super(socket, pw, input, mg);
// TODO Auto-generated constructor stub
}
所以,当我在我的Gui并且想要建立一个新的Clientlistner时,我必须传递所有这些信息,是不是有办法避免这种情况?如果是这样的话?
答案 0 :(得分:1)
如果您不想在构造函数中传递任何内容,则可以在父类中使用no-arg
构造函数。
编辑:
在Client
类中,只需编写此代码,它就是no-arg
构造函数:
public Client(){
}
答案 1 :(得分:0)
假设您要使用ClientSender
来处理所有传出内容,并ClientReceiver
来处理Client
的所有传入内容,它们应该是采用套接字{{1}的不同类一旦创建了客户端,就创建了{}和OutputStream
。因此,它们应该是Client类中的成员而不是Client的子类型。
答案 2 :(得分:0)
我会删除Client构造函数中的变量,因此它只包含ClientListner和ClientSender使用的变量。