重载是发生在同一个类中,许多名称相同而签名不同或返回类型不同的方法。签名指的是方法的参数类型,参数个数等。比如在某个类中,有一个CreateStudent(int no,string name) 方法。现在我再写一个包含三个参数,名称也叫CreateStudent的方法CreateStudent(int no,string name,string sex)那么我现在写的这个方法(三个参数)就是刚刚那个方法(两个参数)的重载。当然不一定非得参数个数不同,参数类型不同或者返回类型不同也都是可以的,但是名称必须相同。
而覆盖,又叫重写,是发生在子类中,来覆盖(重写)父类的方法。注意子类中的方法名称和签名跟父类是一模一样的,返回值也与父类相同或是父类的子类。比如我现在有一个类B继承父类A。Class B extends A 在A类中有一个方法int Math(int a,int b){return a+b;} 现在我在子类B中也写一个跟父类A返回类型、名称、签名都一样的方法 int Math(int a,int b){return a-b;} 现在我创建一个B的实例 B b = new B(); 调用Math方法 b.Math,此时b调用的方法是 子类中的a-b 而不是父类中的a+b 因为子类的方法把父类覆盖了。换句话说也就是子类重写了父类的 int Math方法。