重载:在编译时根据指定参数的数量和类型选择方法 签名
覆盖:在执行时根据目标对象的实际类型(与表达式的编译时类型相对)选择方法 实现
例如:
class base{ void foo(int x) { System.out.println("base.foo(int)"); } void foo(double d) { System.out.println("base.foo(double)"); }}class Child extends base{ @Override void foo (int x) { System.out.println("Child.foo(int)"); }}...base b = new Child();b.foo(10); // Prints Child.foo(int)b.foo(5.0); // Prints base.foo(double)这两个调用都是 重载的 示例。有两种方法,称为
foo,编译器确定要调用的签名。
第一次调用是 覆盖 的示例。编译器选择签名“ foo(int)”,但是在执行时,目标对象的类型确定要使用的实现应为in中的一个
Child。



