我有以下内容:
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中的所有类都有一些共同的功能,然后组类中有一些特定于组的功能。
这是一个很好的设计吗?我问这个的原因是我几乎没有遇到涉及多个抽象类的类层次结构。
答案 0 :(得分:2)
我认为这样的设计没有错。 ArrayList
是具有两个抽象父类的最常用的类之一。使GroupOne
和GroupTwo
部分接口的其他抽象方法扩展A
接口可能很有用。