方法重载和重写都是实现多态性的方式。
前者实现的是编译期的多态,后者实现的是运行时期的多态。方法重载在同一个类中,方法的参数列表(参数类型不同,参数个数不同或者两者不同)则视为方法的重载;
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类的被重写方法更好访问(访问修辞符可见性高),不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。
方法重载和重写都是实现多态性的方式。
前者实现的是编译期的多态,后者实现的是运行时期的多态。方法重载在同一个类中,方法的参数列表(参数类型不同,参数个数不同或者两者不同)则视为方法的重载;
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类的被重写方法更好访问(访问修辞符可见性高),不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。