接口,抽象类或另一种方法java

时间:2014-01-26 02:15:13

标签: java

我有对象Res1和Res2。

public class Res1 {
    public String foo1;
    public String foo2;
}   

public class Res2 {
    public String foo3;
    public String foo4
}

我还有一个对象Response

public class Response {
    public ResMsg res;
    public String code;
    public String error;
}

Res1Res2必须属于ResMsg类型。

我应该创建一个空的抽象类

public abstract class ResMsg {

}

并让Res1Res2扩展此类,或 我应该创建一个空接口然后再 让他们实现这个接口。

拥有一个空接口或一个抽象类看起来很奇怪。 这样做的最佳方式是什么?

修改

我正在开发一种将数据从一个Web服务传递到另一个Web服务的Web服务。为了更好地解决端到端问题,我想创建一个公共Response来封装响应,例如Res1Res2(我从后端获得的原始回复),并添加字段codeerror

2 个答案:

答案 0 :(得分:1)

只有当您希望该类具有将由扩展它的类重用的方法时,才必须创建一个抽象类。如果你只是想说一个类属于某种类型,我认为使用接口更合适。这就是我们所说的“标签界面”http://c2.com/cgi/wiki?TagInterface

答案 1 :(得分:0)

在你的问题中,Res1和Res2需要是ResMsg类型,这表明Res1,Res2应该有一些共同点。

但是从Res1,Res2的类定义中,它们只有不同的字段,没有任何共同之处。

是否使用接口取决于您希望如何使用Response对象。

在我看来,会有一个ResMsg接口,它定义了公共api,Res1和Res2可以直接实现接口。如果Res1和Res2有一些常见的逻辑,你可以有一个抽象类,比如AbstractResMsg,来实现常见的逻辑。 Res1,Res2可以扩展抽象类并实现接口。