我有类似以下内容:
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
}
就我而言,接口(interface)和抽象类作为库的一部分提供。使用该库的应用程序需要编写扩展第二级抽象类的 Impl 类。 AbstractClass 中的所有类都有一些通用功能,并且组类中有一些特定于组的功能。
这是一个好的设计吗?我问这个问题的原因是我几乎没有遇到过涉及多个抽象类的类层次结构。
最佳答案
我认为这样的设计没有什么问题。 ArrayList 是最常用的类之一,有两个抽象父类。将 GroupOne
和 GroupTwo
部分的附加抽象方法扩展为 A
接口(interface)可能会很有用。
关于java - 多级继承中的多个抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585743/