引言
重写的作用就是子类把父类的方法重新搞一遍,入口和出口完全一样,但是中间变化了,这样在使用的时候就可以使用父类的方法,否则调用父类的方法。
重载的作用就是多搞点方法出来,相当于同样是洗(方法名),但是给谁洗,洗什么就不一样了。
里氏替换原则作用
子类可以扩展父类的方法,但是不能改变父类的原有方法的意义,否则以后调用出现了错误,父类出现的地方,子类就可以出现。
表现:
- 1)子类尽量不重写父类的方法,因为继承就是需要使用父类的方法,子类进行扩展。
- 2)子类中可以增加自己特有的方法,增加嘛。
- 3)当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松(参数类型不同就是重载,无论参数类型互相是否子类,宽松时调用父类的方法,严格时调用子类方法,调用子类的方法违背了只有覆写才调用的原则,不然的话就算参数个数相同,本来想执行父类方法的时候-----却执行了子类的具体实现,要的就是子类的这个方法永远不执行!)。
- 4)当子类的方法重写或者实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格(根据子类不同,实现不一样的逻辑,覆写嘛,要的就是不要父亲的方法了,不然就报错)。
这样的话,增强了程序的健壮性:增加儿子的儿子,原有子类还可以继续工作,例如,父类作为参数(宽松)传递子类给父类的方法,不同参数实现不同的逻辑。