方法重载
1.概念:一个类中的一组方法 相同的方法名字 不同的参数列表 这样的一组方法构成了方法重载
参数列表的不同体现在哪里?
参数的个数、参数的类型、参数的顺序
2.作用:为了让使用者便与记忆与调用 只需要记录一个名字 执行不同的操作
3.自己也可以设计方法重载
调用方法的时候,首先通过方法名字定位方法
如果方法名字有一致,可以通过参数的数据类型定位方法
如果没有与传递参数类型一致的方法,可以找一个参数类型可以进行转化(自动转化的那种)
4.JDK1.5版本之后 出现了新的写法
int...x 动态参数列表 类型固定 个数可以动态 范围是0~n
x本质上就是一个数组 有length属性 有[index]
动态参数列表的方法 不能与相同意义的数组类型的方法构成方法重载,因为本质是一样的
动态参数列表的方法 可以不传参数,相当于0个数组的方法,必须传递参数
动态参数列表在方法的参数中只能存在一份儿,且必须放置在方法参数的末尾
5.总结:方法重载(overload)与方法重写(override)
(1)在类方面:方法重载是一个类中的一组方法;方法重写是产生两个继承关系的类,子类重写父类的方法。
(2)在权限方面:方法重载没有要求;方法重写是子类可以大于等于父类
(3)在特征方面:方法重载没有要求;
方法重写:<1>父类方法是final,子类不能重写;
<2>父类方法是static,子类不存在;
<3>父类方法是abstract,子类必须重写
(子类是具体类的必须重写,子类是抽象类,可以不重写)
(4)返回值方面:方法重载没有要求;方法重写子类可以小于等于父类
(5)名字方面:方法重载没有要求;方法重写子类与父类一致
(6)参数方面:方法重载每个方法的参数必须不一致(个数、类型、顺序);方法重写子类与父类一致
(7)异常方面:方法重载没有要求;
方法重写:<1>运行时,编译时,如果父类方法抛出运行异常,子类可以不予理会
如果父类方法抛出编译时异常,子类抛出异常的个数少于等于父类,子类抛出异常的类型小于等于父类。
(8)方法体方面:重载的每一个重载方法执行过程不一致;方法重写子类的方法内容与父类不一致。