方法重载和方法重写的区别
1、重载(overload):
在同一个作用域(类)中,函数名相同(允许存在一个以上的同名函数),参数列表(参数个数或者参数类型)不同,不以返回值作为区分
目的:用于增加程序的可读性(做法不同,但是做的同一事情)。参数必须不同
class People{//在同一个作用域中
void eat(){}
void eat(int a){}//或者 int eat(int a){}
}
2、重写(override):
子类中重写父类的实现,保证函数名相同,参数列表相同,与返回类型无关
目的:提供其超级类已经提供的方法的特定实现。参数必须相同
class People{
}
People p = new People();
//打印 p 输出堆上的地址
打印 p 是张三
功能实现:重写继承下来的toString/字符串操作/重写equals方法,进行对象比较
class People{
@Override
public boolean equals(Object o){
}
}
People p = new People();
//打印 p 输出堆上的地址