如何创建孙子类排列?

时间:2018-03-27 09:14:07

标签: java inheritance multiple-inheritance

我有一个" Sound",我用它来用于音频引擎。这是一个基本的声音对象,它只包含一个音频文件的文件路径,以及一个播放该文件的Java Clip对象。

我有几个小学课程。例如,LoopSound具有特殊的变量和函数,以便在完成后促进声音循环。还有MultiSound用于需要同时播放多个实例的声音效果,并且具有它自己的一组变量和函数。

当然,可能有一个Sound想要循环,并且是多个,所以我做了LoopingMultiSound。

然后我有了第三个想法,一个声音可以应用波形来获得振荡音量。

但是,这意味着,如果我需要一个这3个任意组合的课程,我需要创建该课程。这意味着我需要手动创建所有8个类。对于我想要添加的每个函数,将子类计数加倍,这是不可持续的。

但是我不能将所有这些函数都堆积到原始的Sound对象中,只是有一个布尔说法,如果那个子类方面是否在线。这会造成很多混乱,有点挫败继承编程的目的。我的意思是,没有什么可以阻止我,这是最简单的解决方案,但它也是最不优雅的。

必须有更好的方法。如何动态创建孙子类排列?

1 个答案:

答案 0 :(得分:0)

您应该考虑组合,即编写包装以对这些功能进行分组,以下链接可能会有所帮助,

Difference between Inheritance and Composition