方法重写—Java
- 子类继承父类后,对父类中的同名同参方法,进行覆盖操作
- 应用:
重写以后,当创建子类对象后,通过子类对象调用父类的同名同参的方法时,实际执行的是子类重写的方法
- 子类权限修饰符必须大于等父类的权限修饰符
- 子类不能重写父类private的方法
- 返回值类型:
父类:void----->子类:必须是void
父类:A类型------>子类:A类型或者A子类
父类:基本数据类型----->子类:与父类一致
- 区分方法的重载与重写
- 定义
重载:同类同名,参数个数或参数类型不同
重写:子类继承父类,重写父类方法,方法名、形参必须相同,返回值可以不同 - 具体规则
- 多态性
- 重载:不表现为多态性。是指允许存在多个同名方法,而这些方法的参数不同。编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。Java的重载是可以包括父类和子类的,即子类可以重载父类的同名不同参数的方法。所以:对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定”
- 重写:表现为多态性。而对于多态,只等到方法调用的那一刻,解释运行器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”