2012-10-20 4 views
1

안녕 얘들 아 나는 client라는 클래스가있다. ClientListener와 ClientSender라는 두 개의 하위 클래스로 함수를 구분하고 싶습니다. 클라이언트 그 자체는 다음과 같습니다 생성자가 있습니다생성자가있는 클래스 확장

클라이언트 생성자를

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

내 두 개의 다른 클래스가 확장 적이 클라이언트 이클립스는 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

'Client' 클래스에 0 인수 생성자를 정의하면 모든 파생 클래스에서 생성자를 사용할 수 있습니다. 하지만 기본 클래스 필드를 null로 초기화 할 위험이 있습니다. –

+0

어떻게해야합니까? –

답변

1

construvtor에서 아무 것도 전달하지 않으려는 경우 부모 클래스에 no-arg 생성자를 사용할 수 있습니다.

편집 :

public Client(){ 

} 
+0

어떻게해야합니까? : s –

+0

내 편집 된 답변보기 – Abubakkar

+0

고마워요 : 나는 그것을 시도 할 것입니다 –

0
당신이 나가는 모든 내용을 처리 할 수 ​​ ClientSender를 사용하려는 가정

ClientReceiverClient의 모든 수신 내용을 처리 할 수있는 : 당신의 Client 클래스에서 그냥이 no-arg 생성자이 코드를 작성 클라이언트가 생성되면 소켓의 OutputStreamInputStream을 가져 오는 서로 다른 클래스 여야합니다. 따라서 Client의 하위 유형보다 Client 클래스의 멤버 여야합니다.

0

ClientListner와 ClientSender가 사용하는 변수 만 포함하도록 Client 생성자에서 변수를 제거합니다.