Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的方法隐藏_Java_Oop_Method Hiding - Fatal编程技术网

Java中的方法隐藏

Java中的方法隐藏,java,oop,method-hiding,Java,Oop,Method Hiding,可能重复: 有人能用一个例子来解释Java中的方法隐藏,以及我们为什么使用方法隐藏吗 我阅读了Oracle的教程,但无法理解。当您在超类中有静态方法,并且如果您在子类中创建了具有相同签名的方法,则如果您使用超类引用,将调用超类方法,如果您使用子类引用,将调用子类方法 你能给我们一个具体的例子,说明你在教程中不理解的地方,以及你对正在发生的事情的解释吗?方法隐藏到底做什么以及我们为什么使用它?当你想根据需要灵活调用超类方法或子类方法时,必须使用方法隐藏。当不需要执行超类方法时,将使用重写。i、

可能重复:

有人能用一个例子来解释Java中的方法隐藏,以及我们为什么使用方法隐藏吗


我阅读了Oracle的教程,但无法理解。

当您在超类中有静态方法,并且如果您在子类中创建了具有相同签名的方法,则如果您使用超类引用,将调用超类方法,如果您使用子类引用,将调用子类方法

你能给我们一个具体的例子,说明你在教程中不理解的地方,以及你对正在发生的事情的解释吗?方法隐藏到底做什么以及我们为什么使用它?当你想根据需要灵活调用超类方法或子类方法时,必须使用方法隐藏。当不需要执行超类方法时,将使用重写。i、 e,如果你认为,你的超类方法对你不再有用,而你的子类方法满足了所有的要求,那么就去方法重写吧。有问题的教程是,这有点让人困惑。这听起来像是简单地解释了面向对象的原理,但很难确切地说出你的意思“方法隐藏”。私有方法?其他什么?你引用了一个教程,有没有一个例子可以展示给我们?这是错误的-它不适用于静态,你不能隐藏静态方法,因为你也不能继承它。@Romain:你可能想检查链接的教程。它本身说隐藏只适用于静态(他们说“类方法”,而不是非静态的“实例方法”)。可能是特定于Java的,但这就是他们使用这个词的方式。这与C#的
new
和VB的
Shadows
的工作方式一致,尽管它们(与Java不同)默认情况下使实例方法非虚拟。