重载是节约代码,相同的方法实现的效果不一样
比如System.out.println()方法,只知道打印就行了,里面的参数随便传就行了,就都能打印,打印String跟打印int还要不同的方法,使用的人都烦死了。
现在来了解下重载,要是理解的话还是从使用者(就是你)的角度来理解
根据上面的说明重载最少先方法名相同。
public class Person {
public void say(){
System.out.println("I am Person");
}
public void say(String name){
System.out.println("I am "+name);
}
public static void main(String[] args) {
Person p = new Person();
p.say();
p.say("bird");
}
}
方法名相同才能构成重载,但是作为使用者必须能够区分到底调用的哪个方法。所以区分的办法就是参数类型不一样。
如果方法名和参数一样,返回值是不能作为区分的标准的。因为你可以不取得返回值。
还有一种是构造方法的重载,这个比较容易理解。就是构造时,可以有不同的参数用来构造实例就对了。
每一个类,如果没有构造方法会有一个默认的无参构造方法。
public class Person {
private String name;
public Person(){
}
public Person(String name){
this.name = name;
}
public void say(){
System.out.println("I am Person");
}
public void say(String name){
System.out.println("I am "+name);
}
public static void main(String[] args) {
Person p = new Person();
Person p1 = new Person("bird");
p.say();
p.say("bird");
}
}
构造方法跟方法其实效果是一样的,只是没有返回值,方法名跟类名相同。区分方法同样是不同的参数。