目录
1.重写
- 1.重写
- 2.重载
- 3.重载(Overload) 和重写(Override) 的区别?
重写必须满足如下条件: (1)方法的返回值类型必须相同。 (2)方法的参数个数必须相同。 (3)方法的参数对应的数据类型必须相同。 (4)子类方法不得降低父类同名方法的访问级别。 另外
- 被重写的方法发生在父类与子类之间
- 方法名。参数列表,返回值类型相同
- 重写的访问修饰符的权限一定要大于被重写的访问修饰符的权限
- 重写方法一定不能抛出 新的异常,或者比重写方法更宽泛的异常。
- 被final关键字修饰的方法不能被重写
- 构造方法不能被重写
- 子类的访问级别不能低于父类 的访问级别
- 参数类型。顺序和个数至少有一个不同
- 重载发生在一个类中
- 不能重载只有返回值不同的方法名
- 构造方法可以重载
-
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
-
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。
-
重载对返回类型没有特殊的要求,不能根据返回类型进行区分。