一、重写与重载
重写是父类与子类之间多态性的一种表现,而重载是一个类中多态性的一种表现,且重载“同名不同参”。子类的对象使用这个方法时,将调用子类的定义,对这个类的对象而言,父类的定义就被“屏蔽”掉了。
二、方法的重写与重载
方法的重写:如果在子类中定义某方法与其父类有相同的名称和参数,则该方法被“重写”;
方法的重载:如果在一个类中定义多个同名方法,它们或有不同参数个数或有不同的参数类型,则该方法被“重载”。被重载的方法是可以改变返回值类型的。
总结两者的异同:
1.不同:
1)重写发生在父类、子类之间,而重载发生在一个类中。
2)重写实现的是运行时的多态性,而重载实现的是编译时的多态性。
3)“同参”(相同的参数列表)被认为是“重写”,而“同名不同参”(不同的参数列表)被认为是“重载”。
4)重写要求有兼容的返回类型,而重载对返回类型没有特殊的要求,不能根据返回值进行区分。
2.相同:
1)重写(Overriding)与重载(Overloading)是Java语言多态性的不同表现。
Java学习之重写与重载的异同
最新推荐文章于 2022-07-13 19:15:11 发布