重载:发生在同一个类中,方法名相同,参数列表不同(参数类型、参数个数、参数顺序),访问修饰符和返回值可以不同。
重写:发生在父子类中,方法名和参数列表必须相同,访问修饰符的范围要大于等于父类,返回值范围要小于等于父类,抛出的异常范围要小于等于父类。如果父类方法为private修饰,则子类不能重写。
子类访问修饰符的范围要大于等于父类的原因:因为Java的多态性,如果在父类中方法是可以被访问的,但子类重写后访问范围变小不可以被访问了,则影响了Java中的多态性,即父类调用不到子类中的方法。
重载:发生在同一个类中,方法名相同,参数列表不同(参数类型、参数个数、参数顺序),访问修饰符和返回值可以不同。
重写:发生在父子类中,方法名和参数列表必须相同,访问修饰符的范围要大于等于父类,返回值范围要小于等于父类,抛出的异常范围要小于等于父类。如果父类方法为private修饰,则子类不能重写。
子类访问修饰符的范围要大于等于父类的原因:因为Java的多态性,如果在父类中方法是可以被访问的,但子类重写后访问范围变小不可以被访问了,则影响了Java中的多态性,即父类调用不到子类中的方法。