使用构造函数扩展类

时间:2012-10-20 13:41:22

标签: java class 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要求我实现construcktor并自动生成以下内容:

ClientSender自动生成的构造函数

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

所以,当我在我的Gui并且想要建立一个新的Clientlistner时,我必须传递所有这些信息,是不是有办法避免这种情况?如果是这样的话?

3 个答案:

答案 0 :(得分:1)

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

编辑: 在Client类中,只需编写此代码,它就是no-arg构造函数:

public Client(){

}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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