具有相同方法名称的扩展类和实现的接口

use*_*836 5 java inheritance

在Java中,如果我有一个ClassA是延伸的ClassX和器械的InterfaceY,都ClassXInterfaceY有一个methodC(),那么我们为什么不我不得不放弃的实现methodC()ClassA?是某种方法重载吗?

dre*_*ore 2

因为如果有一个和extendsClassX的实现,那么就有一个-的实现。methodC()ClassAClassXClassA methodC()ClassX

如果ClassA有它自己的实现methodC(),则称为方法覆盖-ClassA的实现将覆盖其超类()的实现ClassX

重载是一个完全不同的问题:当一个类具有多个具有相同名称/返回类型且采用不同参数的方法时,就会发生重载。当您希望能够使用不同的输入执行相同或相似的操作时,这很有用,并且它与override无关,而当您有一个子类,其特定方法的实现需要与它的超级一流。

请参阅此处,了解有关它们之间差异的有用讨论。