方法重载 和 方法重写
什么是方法的签名? ——> 方法名称+形参列表
注:返回值类型不是签名的一部分
就是=》 方法的名称 + 形参列表
假如两个方法的名称 + 形参列表都一样,那我们称是同一个方法
(1)方法的重载 Overload ——是一种现象
1、定义:方法名称相同,参数的类型、顺序或个数 不同(简称:参数列表不同)
2、应用场景:通常用于创建完成一组任务相似但参数的类型或参数个数或参数顺序不同的方法。
//方法重载举例
public class MethodOverloading {
private void receive(int i) {
System.out.println("收到一个整型数据:"+ i);
}
private void receive(double i) {
System.out.println("收到一个double类型的数据:"+i);
}
private void receive(String s) {
System.out.println("收到一个字符串:"+s);
}
public static void main(String[] args) {
MethodOverloading m=new MethodOverloading();
m.receive(666);
m.receive(3.3);
m.receive("方法重载!");
}
}
3、总结:在类中可以创建多个同名方法,但是它们必须具有不同的参数:即就是参数类型不同或参数个数不同或者参数顺序不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。
(2)方法的重写(Overwrite)
1、定义:子类重写了父类的一个方法,要求:
A.方法名称相同,形参列表相同,返回类型相同
特例: 允许返回值类型是父类方法返回类型的子类
List method();
ArrayList method(); (其中ArrayList是List的子类)
B.访问限定符:子类的不能比父类的更封闭,若父类的是public, 子类就不能是private.
2、应用场景:一般发生在父类继承关系中,子类重写父类方法。
3、目的:针对同一行为,子类表现出和父类不同的方式(例子:叫声)