2012-06-13 59 views
0
  • 重载 - 在同一个 类中具有不同签名的相同方法。
  • 重写 - 同样的方法签名 子类不同的实现

如果我在父类的重载的方法确实子类的过载或重载这个特别的方法?覆盖和超载透视

+0

没问题。在这种情况下,您将有一个覆盖(父母的相同签名)和超载(父母的不同签名) – Victor

+0

覆盖。认为子类正在重写该方法,因为它不再调用父方法。对于重载,认为你正在用同名的方法重载。 –

回答

2

重载和重写不是相互排斥的。

class Parent { 
    void foo() {} 
    void foo(int a) {} 
    void bar() {} 
} 

class Child extends Parent { 
    void foo() {} // overriding and overloading 
    void foo(double b) {} // overloading 
    void bar() {} // overriding 
} 
+0

类父{ 无效美孚(INT A){} } 类儿童延伸父{ 无效美孚(INT A,双B){} //是重写和重载?? } 类儿童延伸父{ 无效美孚(){} //重写和重载 无效美孚(INT A,双B){} //是重写和重载?? void bar(){} //覆盖 } –

0

实际上,这两个原因是:

  • 覆盖 - 它具有相同的方法签名作为父类的方法。
  • 重载 - 它具有与父类相同的方法名称,但具有不同的签名。