重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。 例如: public class TestClass{ public int test(int i){return 1;} public int test(float f){return 1;} }
就像人类会说话,A是中文,B是英语。
重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。 例如: public class TestClass1{ public int test(int i){return 1;} } public class TestClass2 extends TestClass1{ public int test(int i){return 2;} }重载是静态多态性,即同名不同参 重写就是覆盖,动态多态性,同名又同参 (都指子类与父类同名的方法)面试时就回答重载是同名不同参 覆盖是动态多态性,同名有同参。