【发布时间】:2015-01-26 10:42:04
【问题描述】:
所以我认为这更像是一个好奇的问题,而不是需要解决的问题。
所以我在 Android Studio 中使用 AndEngine for Android,我想创建一个 AudioManager 来处理我的所有音频,作为开始。
我可以实现 AndEngine 的称为 IAudioManager 的接口或扩展 BaseAudioManager,它已经是前面提到的接口的实现。这让我想到了我的问题。 IAudioManager 和 IAudioEntity:
public interface IAudioManager<T extends IAudioEntity> {
public float getMasterVolume();
public void setMasterVolume(final float pMasterVolume);
public void add(final T pAudioEntity);
public boolean remove(final T pAudioEntity);
public void releaseAll();
}
public interface IAudioEntity {
public void play();
public void pause();
public void resume();
public void stop();
public float getVolume();
public void setVolume(final float pVolume);
public float getLeftVolume();
public float getRightVolume();
public void setVolume(final float pLeftVolume, final float pRightVolume);
public void onMasterVolumeChanged(final float pMasterVolume);
public void setLooping(final boolean pLooping);
public void release();
}
现在,如果我想使用此接口创建 AudioManager,可以将其键入为 T 扩展 IAudioEntity。但我认为你实现了接口而不是扩展它们,对吧?
所以我只是想知道在接口方面我是否遗漏了什么。我对 Java 不是很感兴趣,但我在 uni 有一门课程,所以我记得很多东西,但细节可能很模糊,但这是否意味着这种情况下的实际语法并不重要,因为它本来就有为了被实例化而被实现,并且任何扩展该类的东西都可以作为这个 AudioManager 中的参数?
【问题讨论】:
标签: java interface polymorphism abstract-class