2011-07-05 42 views
0

我有类似以下内容:多个抽象类的多层次继承

public interface A 
{ 
    .... 
} 

public abstract class AbstractClass implements A 
{ 
    // Implements some methods from interface 
    .... 
} 

public abstract class GroupOne extends AbstractClass 
{ 
    // Implements some methods from interface 
    // Define couple of abstract methods 
    ..... 
} 

public abstract class GroupTwo extends AbstractClass 
{ 
    // Implements some methods from interface 
    // Define couple of abstract methods 
    ..... 
} 

public class ClassImpl extends GroupOne 
{ 
    // Implement couple of abstract methods from GroupOne 
} 

public class AnotherClassImpl extends GroupTwo 
{ 
    // Implement couple of abstract methods from GroupTwo 
} 

在我的情况下,interace和抽象类中提供的库的一部分。使用这个库的应用程序需要编写扩展第二级抽象类的Impl类。 AbstractClass中的所有类都有一些常用功能,然后在组类中有一些特定于组的功能。

这是一个很好的设计吗?我问这个问题的原因是我很少遇到涉及多个抽象类的类层次结构。

+1

看起来不错,虽然我们并不真正了解上下文。 该设计表示每个类都以接口定义的方式运行。 Group类共享一些方法(通过AbstactClass),但以不同的方式实现一些方法。每个组都有另一个类的列表,以非常特定的方式实现所需的方法。 你确定你想要很多抽象类吗?如果他们有道理,那就很好。 – c00kiemon5ter

+0

@ c00kiemon5ter:是的,没错。 – Prasanna

回答

2

我看到这样的设计没有错。 ArrayList是具有两个抽象父类的最常用的类之一。使GroupOneGroupTwo接口的其他抽象方法扩展到A接口可能会很有用。