2013-12-14 3 views
1

와 인터페이스를 구현하는 것은 어쩌면 그 대답은 당신의 대부분 분명하지만, 인터페이스를 구현할 때 나는 조금 혼란 스러워요.단지 하나의 클래스 이상의 클래스

는 "단지 하나의 구현 클래스가" "방법의 완전한 세트"를 구현해야할까요? 외환 :

public class CCSImplementation implements CCS { 

    public void addComment (int submissionId,int customerId, String comment, Date date) { } 

    public void addGeneralComplaint (int submissionId, int customerId, String description, Date date) { } 
     and other methods…..} 

또는 - 더 구현 클래스는

public class Comment implements CCS { 
    public void addComment() {}  
} 

public class GeneralComplaints implements CCS { 
    public void addGeneralComplaint(){}  
} 

로 관련 방법을 고려하여 부분에 의해 인터페이스 부분을 구현? 참조가

하나 이상의 클래스가 인터페이스를 구현할 수 있다고 때문에 나는 조금 오전 말했듯이 ...

(--- 나는이 같은 구현 오류가 발생했습니다) 혼란스러워.

답변

2

클래스가 abstract 경우, 당신은 모든 방법/하나를 구현할 필요가 없습니다를 확장 :

public abstract class Comment implements CCS { 
    public void addComment() {} 
    // addGeneralComplaint() is implied as abstract  
} 

필요에 따라 이러한 클래스를 정의하는 것이 완전히 유효 할 수 있습니다. 여기서 일부 메소드가 구현되지만 하위 클래스는 나머지 인터페이스 메소드를 구현하기 위해 남아 있습니다. 당신이 추상 클래스를 사용하고 있는지 밝혀지면

+0

구현할 20 개의 메소드가 있다고 가정 해 보겠습니다. – serb

+0

public abstract class Comment CCS { – serb

+0

에는 구현 된 메소드가 20 개 있고 나머지는 추상으로 암시되어 있어야합니다. – serb

2

abstract 클래스가모든 구현하여 인터페이스 방식에 의해 노광을 제공해야하는 인터페이스를 구현한다. 우리가 abstract class A이 있다면 그들 모두는 기본적으로 추상적이기 때문에

, 그것은 인터페이스 노출 방법의 메소드 구현을 제공하지 않고 인터페이스를 구현할 수 있습니다. 이 클래스는 비 abstract 클래스 B 의해 서브 클래스 때하지만, 하위 클래스는 인터페이스 노출 메소드 서명의 구현을 제공한다.

+0

추상 클래스는 없습니다. – Bohemian

+0

물론. 내 잘못이야. 편집 할 것입니다. –

0

클래스 코멘트해야는 클래스 GeneralComplaints

또는해야 클래스 코멘트를 확장

클래스 GeneralComplaints ..

0

당신은 모든 것을 사용할 필요가 없습니다. 필자가 제공 한 방법을 사용할 계획이라면 무엇인가를 구현하기를 원한다. 사용자가 클래스에서 메서드를 사용하는 것을 잊지 않도록 인터페이스가 제공되었다고 설명했습니다. 희망이 도움이됩니다.

관련 문제