在区别重写(Overriding)和重载(Overloading)之前,先要清楚型构(Signature)的概念,所谓型构是指:方法的组成结构,具体包括方法的名称和参数,这涵盖了方法参数的数量、类型以及出现的顺序,但是不包括方法的返回值类型,访问权限修饰符,以及abstract,static,final等修饰符。
比如下面两个就是具有相同型构的方法:
public static void method(int i, String s) {
// do something
}
private final String method(int i, String s) {
// do something
}
而这两个就是具有不同型构的方法:
public void method(int i, String s) {
// do something
}
public void method(String s, int i) {
// do something
}
重写和重载的区别:
重写,overriding,是指在继承的情况下,子类中定义了与父类中具有相同型构的新方法,也就是子类重写了父类的方法。
重载,overloading,是在同一个类中,定义了一个以上具有相同名称,但是有着不同型构的方法,在同一个类中是不允许定义多于一个具有相同型构的方法的。
构造器也是可以重载的,实际上,构造器就是一个方法,构造器的名称就是方法的名称,