Java不允许多个超类;正如我所知,接口不能有方法体。那么,如何处理我想继承不同超类的两个实现方法的情况。
假设我为对象创建了类,这些类可以执行一些特定的任务,假设对象可以播放和唱歌。有些对象只播放以及它们的子类,因此不需要为每个子类定义完全相同的play()方法,我在超类Player中定义了它。有些对象只唱歌,所以我在超类Singer中定义了泛型sing()方法,而不是在每个子类中。如果子类可以唱歌和播放,那么应该做什么,因此需要扩展Player和Singer超类,以便能够应用超类的已实现的play()和sing()方法。如何处理这种情况,以最有效的方式?
发布于 2020-12-08 18:40:49
从Java8开始,接口可以有默认方法。这些方法被标记为default关键字,并且可以在接口中有一个实现,然后这些实现可以在实现接口的类中使用(或者由类重新实现)。类还可以实现多个接口,因此可以让类同时实现Player和Singer,并在各自的接口中提供默认方法play()和sing()。如果您想要修改接口而不需要修改已经实现它的类,这也是非常有用的。
https://stackoverflow.com/questions/65204732
复制相似问题