方法覆盖/重写
单词:Override、Overwrite
定义:
在子类继承父类关系中,子类重写父类方法
什么时候考虑使用方法覆盖?
父类中方法,无法满足子类中业务需求,子类有必要对继承过来的方法进行覆盖
满足重写的条件:
条件1:2个类必须要有继承关系
条件2:重写后和之前的方法具有:相同的返回值类型、相同的方法名、相同的形式参数列表
条件3:访问权限不能更低,可以更高
条件4:重写之后的方法不能比之前的方法抛出更多的异常,可以更少。
关于Object类中toString()方法的覆盖?
toString()方法存在作用:将java对象转换成”字符串“形式,大多数的java类toString()方法都是需要覆盖的。
因为Object类中提供的toString()方法输出的是一个java对象的内存地址。
至于toString()方法具体怎么定义怎么进行覆盖?
格式可以自定义,或者听需求
方法重载和方法覆盖区别?
方法重载发生在一个类中;方法覆盖是发生在具有继承关系中的父子类之间
方法重载是一个类中,方法名相同,参数列表不同。
方法覆盖是具有继承关系的父子类,并且重写的方法后和之前的方法一致:方法名一致、参数列表一致、返回值一致
注意事项:
1.方法覆盖只是针对方法和属性无关
2.私有方法无法覆盖
3.构造方法不能被继承,所以构造方法也不无法覆盖
4.方法覆盖只是针对"实例方法","静态方法覆盖"没有意义