1、重载
概念:再同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
特点:
与返回值类型无关,只看参数列表
好处:方便与阅读,优化了程序设计
示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y, int z){return x+y+z;}
//返回两个小数的和
//double add(double x,double y){return x+y;}
什么时候用重载?当定义的功能相同,但参与运算的求知内容不同,那么这是就定义一个函数名称以表示其功能,方便于都,二通过参数列表的不同来区分多个不同名函数。 两个仅仅返回值类型不同的函数不能同时存在同一个类中。
2、重写
当子父类中有非私有同名函数,叫做重写(覆盖),但此时父类的函数毅然存在。当子类继承父类,沿袭了父类的功能,到子类中。但是子类虽具备该功能,但是功能的内容和父类不一致,这时没有必要定义新功能,而是使用覆盖,保留父类的功能定义,并重写功能。
注意:子类覆盖父类,
必须保证子类权限大于等于父类权限,否则编译失败
静态只能覆盖静态。
重写:子类父类函数名称类型参数必须一模一样,不允许子类中有仅返回值类型不同的同名同参数函数。
重载:只看函数的参数
class Fu
{
void show(){}
void speak()
{
System.out.println("a");
}
}
class Zi extends Fu
{
void speak()
{
System.out.println("b");
}
}