2012-07-23 77 views
0

可能重复:
Overriding vs Hiding Java - Confused方法在Java中隐藏

能有人请解释方法hididng在Java中有一个例子,为什么我们使用方法隐藏?

我读甲骨文的教程,但无法理解。

+7

你能不能给我们带来什么你不教程明白,你到底是怎么回事的解释以及具体的例子吗? – 2012-07-23 15:04:38

+0

什么方法隐藏做到完全和我们为什么使用它? – 2012-07-23 15:05:19

+0

**当您希望根据您的需要灵活地调用超类方法或子类方法时,必须使用方法隐藏**。 **当你的超类方法不需要执行时,覆盖**被使用。也就是说,如果你认为这一点,你的超类方法对你来说没有什么用处,而你的子类方法可以满足所有的要求,那么就去实现方法重写。 – Lion 2012-07-23 15:06:38

回答

0

当你在超类的静态方法,如果你创建在子类相同签名的方法,超类的方法将被调用,如果你使用的是超类的引用和子类的方法被调用,如果你正在使用子类引用。

+0

这是错误的 - 它不适用于静态,您不能隐藏静态方法,因为您无法继承它。 – Romain 2012-07-23 15:11:46

+1

@Romain:您可能想检查已链接的教程。它本身表示,隐藏将* only *应用于静态(他们说“类方法”,而不是非静态的“实例方法”)。可能是Java特有的,但这就是他们如何使用这个词。它与C#的'new'和VB的'Shadows'如何工作是一致的,尽管它们(不同于Java)使得实例方法默认为非虚拟的。 – cHao 2012-07-23 15:15:58