2013-12-14 46 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

公共抽象类评论实现CCS { – serb

+0

应该包含20个方法,其中一些实现,其余部分隐含抽象? – serb

2

当非abstract类实现一个接口它必须提供的所有实现通过接口方法的暴露。

如果我们有一个abstract class A,它可以在不提供接口公开方法的方法实现的情况下实现一个接口,因为它们都是默认情况下是抽象的。但是当这个类被非类类B分类时,子类必须提供了接口公开方法签名的实现。

+0

抽象类不必 – Bohemian

+0

当然。我的错。将编辑它。 –

0

类注释应扩展类GeneralComplaints

类GeneralComplaints应该扩展类评论..

0

如果事实证明您正在使用抽象类,那么您不必使用任何东西。根据我的理解,如果你打算使用提供的方法,你只想实现某些东西。我向他解释说,提供了一个接口,以便用户不会忘记在他们的课程中使用方法。希望这可以帮助。