Java之重载(Overload)与重写(Overwrite)总结
内容来源为:《孙卫琴面向对象编程》,本随笔简单总结,具体内容可参见概述第6章,写的挺清晰; 一. 重载(Overload) 1. 有时候类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数( 如构造函数就是一种例子 ); 2. 对于类的方法(包括从父类中继承的方法),如果有两个方法的方法名相同,但参数不一样,那么可以说,一个方法是另一个方法的重载方法。 3. 重载方法必须满足以下条件 : (1)方法名相同; (2)方法的参数类型、个数、顺序至少有一项不同; (3)方法的返回值类型可以不同; (4)方法的修饰符可以不同; 4. 在一个类中不允许定义两个方法名相同,并且参数签名也完全相同的方法。因为假如存在这样的方法,Java虚拟机在运行时就无法决定到底执行哪个方法,参数签名是指参数的 类型、个数和顺序。 二. 重写(OverWrite) 1. 如果在子类中定义的一个方法,其名称、返回值类型及参数签名正好与父类中的某个方法的名称,返回值类型及参数名相匹配,那么可以说,子类的方法重写了(覆盖)父类的方法; 2. 重写方法必须满足以下约束条件: (1)子类的方法的名称、参数签名和返回值类型必须与父类方法的名称、参数签名及返回值类型一致; (2)子类在重写父类方法时