java - 多级继承中的多个抽象类

标签 java inheritance class-design abstract-class

我有类似以下内容:

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 是最常用的类之一,有两个抽象父类。将 GroupOneGroupTwo 部分的附加抽象方法扩展为 A 接口(interface)可能会很有用。

关于java - 多级继承中的多个抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585743/

相关文章:

java - 带扩展名的 ResourceBundle 完全限定名称

c++ - 仅为派生类启用模板化基类

java - 调用从基类 : use this , super 继承的方法或隐式调用的最佳方法

objective-c - 各种@interface 声明,有些带有括号

Java注释ElementType.TYPE_USE

java - 用户管理最佳实践/库/框架?

Java Standalone 可运行的 GUI 应用程序 - 无法获取 jar 文件来打开程序

c# - EF 代码优先 : separate creation of objects in db with TFT inheritance

c# - 设置只获取属性 : constructor vs backing field 值的首选方法

c++ - 在具有所有 const 数据成员的类中实现复制赋值运算符是否有意义?