重载
定义:在一个类中有相同的函数名称,但形参不同的函数
规则:
- 名称必须相同
- 参数列表必须不同(参数类型或个数或顺序不同)
- 返回值类型可同可不同
- 仅仅返回值类型不同不足以构成重载
注意:看形参不看返回值类型,返回值类型不同不能作为构成重载的标志
重写
前提:需要有继承关系,子类重写父类的方法
A extends B
B b = new A();//父类的引用指向子类
@Override重写注解
可用alt+insert 中直接生成重写
重写和静态方法无关,只和非静态方法有关
关键字为public不能为private
注意点:
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大但不能缩小:public>protected>default>private
- 抛出的异常:范围可以被缩小,但不能扩大
重写,子类的方法和父类必须要一致,方法体不同!
为什么要重写?父类的功能子类不一定需要,或者不一定满足
可变参数
定义:在一个方法声明中,在指定参数类型后加一个省略号(…)
规则:一个方法中只能指定一个可变参数,且必须是方法的最后一个参数,任何普通参数都必须在它之前声明
举例:
public void test(int... i){
System.out.println(i);
}
main.test(1);
输出结果:1
public void test(int... i){
System.out.println(i[1]);
}
main.test(1,2,3);
输出结果:2
注意输入单数字和一串数组的区别