继承—如何处理java中两个抽象类的需要?

sxpgvts3  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(330)

这个问题在这里已经有答案了

java多重继承(17个答案)
上个月关门了。
java不允许多个超类;我知道接口不能有方法体。因此,如何处理我想要继承不同超类的两个实现方法的情况。
假设我为可以执行某些特定任务的对象创建类,比如说对象可以播放和唱歌。有些对象只播放它们的子类,所以不需要为每个子类定义完全相同的play()方法,我在超类player中定义它。有些对象只会sing,因此,我在超类singer中定义泛型sing()方法,而不是在每个子类中。怎么办,如果一个子类可以唱歌和演奏,那么需要扩展player和singer超类,以便能够应用实现的play()和sing()超类方法。如何以最有效的方式处理这种情况?

6mw9ycah

6mw9ycah1#

从Java8开始,接口可以有默认方法。这些方法标有 default 关键字和可以在接口中有一个实现,然后可以在实现接口的类中使用(或由类重新实现)。类还可以实现多个接口,因此可以让一个类同时实现这两个接口 Player 以及 Singer 并提供默认方法 play() 以及 sing() 在各自的接口中。如果您想修改一个接口而不必同时修改已经实现它的类,这也很有用。

相关问题