重载(Overload):
概念:在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
特征:
- 必须是同一个类里面的方法 。
- 方法名必须相同。
- 参数列表个数或者参数类型不同(两者为或的关系,满足其一即可)。
- 返回值类型可以相同也可以不同。
常见应用:
类中构造函数的重载。
代码示例:
public static void main(String[] args) {
int [] nums = new int[]{1,2,3}
System.out.println(add(1,2));
System.out.println(add(1,2));
System.out.println(add(1,2,3));
}
static int add(int[] nums) {
int result = 0;
for(int i = 0;i < nums.length;i ++) {
result += nums[i];
}
return result;
}
static int add(int num1,int num2) {
return num1 + num2;
}
static int add(int num1,int num2,int num3) {
return num1 +num2 + num3;
}
重写(override):
概念:重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
特征:
- ==:方法名、参数列表要相同。
- <=:返回值类型和声明异常类型,子类返回值要小于等于父类。
- >=:访问权限,子类大于等于父类。
常见应用:
equals方法和toString方法的重写。
代码示例:
class Person{
int age;
String name;
public void live() {
System.out.println("只要我还活着...");
}
}
//继承
class Student extends Person{
String clazz;
public Student(String clazz) {
super();
this.clazz = clazz;
}
public Student() {
}
//子类重写父类方法,该改变只在子类对象中生效,对父类和父类的其他子类无影响
public void live() {
System.out.println("停电了,打着灯也要学习~");
}
}