1.重载(overloading)
即方法的重新加载。对于一个类,这个类里有两个或多个重名的方法,但是这些方法的参数的个数、类型不同,就构成了方法的重载。
如:
public class A { public static void main(String[] args) { // TODO Auto-generated method stub int x=0; int y=0; double z=0.0; A.methodA(x); A.methodA(x,y); A.methodA(z); } public static void methodA(int x){ x=1; System.out.println(x); } public static void methodA(int x,int y){ x=1; y=2; System.out.println(x+y); } public static void methodA(double x){ x=3.0; System.out.println(x); }
结果如下:
重载的特点:同一个类中,方法名相同,但参数不同(参数的类型、参数的个数)
java面向对象基础中构造函数---空参构造和全参构造,就是方法的重载,是面向对象中多态的一种表现。
2.重写(override),也可以叫做覆写,即覆盖了一个方法并对其重写,这个方法是父类中的方法,它继承了父类的方法并对父类方法进行重写。
如:
public class A { public static void main(String[] args) { // TODO Auto-generated method stub int x=0; B.methodA(x); } public static void methodA(int x){ x=1; System.out.println(x); } public static class B extends A{ } }
结果如下:
class B继承了来自classA的方法methodA()
public class A { public static void main(String[] args) { // TODO Auto-generated method stub int x=0; A.methodA(x); B.methodA(x); } public static void methodA(int x){ x=1; System.out.println(x); } public static class B extends A{ public static void methodA(int x){ x=2; System.out.println(x); } } }
结果如下:
子类(B类)class B中的方法methodA()覆盖了继承自父类(A类)的方法methodA()
重写的特点:子类方法继承自父类,具有与父类不同的方法