Java 多次调用超级构造函数

Java 多次调用超级构造函数,java,inheritance,extends,super,Java,Inheritance,Extends,Super,在我当前的编程项目中,我有一些基本类,比如数字或图像集。在其他类中,我使用这些来显示信息。我认为不需要太多编码的最简单方法是让显示类扩展基类 但是在一个类中,我需要两个超类ImageSet的实例。这可能吗?通常你会打超级电话,但第二次超级电话是不允许的 下面是Number类的一些代码:Element是另一个抽象的自制类 公共类ImageSet扩展元素{ 私人INTX; 私营企业; 私有int图像索引; 私人国际图像搜索; 公共图像集int x,int y,int imageIndex,int I

在我当前的编程项目中,我有一些基本类,比如数字或图像集。在其他类中,我使用这些来显示信息。我认为不需要太多编码的最简单方法是让显示类扩展基类

但是在一个类中,我需要两个超类ImageSet的实例。这可能吗?通常你会打超级电话,但第二次超级电话是不允许的

下面是Number类的一些代码:Element是另一个抽象的自制类

公共类ImageSet扩展元素{ 私人INTX; 私营企业; 私有int图像索引; 私人国际图像搜索; 公共图像集int x,int y,int imageIndex,int ImageScont,布尔ignoreDimension抛出IOException,UnequalDimensionsException{ 如果!忽略维度{ […]//检查尺寸是否相等,否则抛出UnequalDimensionsException } 这个.x=x; 这个。y=y; this.imageIndex=imageIndex; this.ImageScont=ImageScont; } [...] } 下面是基类两位数的一些代码:

公共类两位数扩展元素{ 图像集; 图像集; 维度d=null; public TwoDigitsint x,int y,int imageIndex,int imageCount,boolean ignoreDimension抛出unequaldimensionexception,IOException{ tens=新的ImageSetx,y,imageIndex,imageCount,ignoreDimension; 字符串imageIndexFormatted=字符串。格式%04d,imageIndex; d=StaticHelpers.getImageDimensionNewFileData/+imageIndexFormatted+.png; ones=新图像集X+d.宽度,y,图像索引,图像计数,ignoreDimension; } [...] } 我想将两位数的超类更改为ImageSet,以便在其他类中保存一些代码


谢谢您的帮助。

我不完全理解您的代码,但这听起来像是组合而不是继承的例子。您的两位数可以包含两个数字实例。如果你还想让它从Number扩展到共享一些公共代码/接口,那么也许你应该把需要两个实例的Digit与Number分开,后者定义了Digit和twodights都可以实现的numbery方法。最后,您还需要三位数和四位数吗?如果是这样的话,也许这些不应该得到单独的类,而是基于数字列表的东西。维度和ImageSet到Number之间的关系是什么?数字不应该也使用这些吗?我把数字和图像集搞混了,很抱歉。我的意思是我想从ImageSet继承两个数字。因此,TwoDigits确实包含ImageSet的两个实例,但我想改变这一点。永远不需要三位数和四位数,只需要两位数。如果您需要两位数类中的两个数字实例,那么您需要使用组合,而不是继承,即您的两位数类需要两个数字类型的字段。contain与extendI非常不同。我不完全理解您的代码,但这听起来像是一个组合而不是继承的例子。您的两位数可以包含两个数字实例。如果你还想让它从Number扩展到共享一些公共代码/接口,那么也许你应该把需要两个实例的Digit与Number分开,后者定义了Digit和twodights都可以实现的numbery方法。最后,您还需要三位数和四位数吗?如果是这样的话,也许这些不应该得到单独的类,而是基于数字列表的东西。维度和ImageSet到Number之间的关系是什么?数字不应该也使用这些吗?我把数字和图像集搞混了,很抱歉。我的意思是我想从ImageSet继承两个数字。因此,TwoDigits确实包含ImageSet的两个实例,但我想改变这一点。永远不需要三位数和四位数,只需要两位数。如果您需要两位数类中的两个数字实例,那么您需要使用组合,而不是继承,即您的两位数类需要两个数字类型的字段。contain与extend非常不同