可能重复:
多态性与重写与重载
我很难知道为什么java中需要重载和覆盖的方法?
我已经阅读了一些关于此的文章,但却无法理解为什么它几乎需要它?
我还访问了stackoverflow中的下面的url,但我还不清楚这个主题.
任何实际的例子将不胜感激.
提前致谢.
我试图回答另一个问题,这导致我问自己的问题。我做了一些研究,但找不到有关上述主题的任何信息。
我有一个抽象类Character,它有 1 个带有 varargs 参数的抽象方法,如下定义
public abstract class Character {
public abstract void doSomething(int... values);
}
Run Code Online (Sandbox Code Playgroud)
我的印象是任何扩展此类的类都可以使用任意数量的参数覆盖此方法。
// 1st example
public class Player extends Character {
@Override
public void doSomething(int x, int y) { // Two params - do something }
}
// 2nd example
public class NPC extends Character {
@Override
public void doSomething() { // No params - do something }
}
Run Code Online (Sandbox Code Playgroud)
但上面的两个例子都导致了编译时错误。我想知道我在这里错过了什么?上述场景有可能吗?
任何帮助表示赞赏。