重载不等同于重写:方法的重写发生在父类与子类中,而重载发生在本类;重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;重载的参数列表不同,重写的参数列表必须相同。
方法重载
方法重载的定义是如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。
对于定义我们可以有以下的理解:
- 方法名相同
- 方法的参数类型,参数个数不同
- 方法的返回类型可以不相同
- 方法的修饰符可以不相同
-
main
方法也可以被重载
方法重载例子如下:
public class Person {
String name; //name字段
int age; //age字段
public Person(){ //无参构造方法,命名与类名一致
this.name = "Jack";
this.age = 18;
}
public Person(String name){ //重载 构造方法1(含一个参数name)
this.name = name;
this.age = 18;
}
public Person(String name, int age){ //重载 构造方法2(含两个参数name,age)
this.name = name;
this.age = age;
}
public static void main(String[] args) {
Person mine = new Person(); //创建对象引用mine,此时调用 无参构造方法
Person he = new Person("Lucy"); //创建对象引用he,此时调用构造方法1
Person anybody = new Person("Helen", 3); //创建对象引用anybody,此时调用构造方法2
System.out.println("My name is " + mine.name + " and age is " + mine.age); //输出mine对象的字段
System.out.println("His name is " + he.name + " and age is " + he.age); //输出he对象的字段
System.out.println("Your name is " + anybody.name + " and age is " + anybody.age); //输出anybody的字段
}
}
方法重写
超类的调用final类instanceof