父类预留接口
来源:4-3 简单的多态
陈立天
2020-10-04 15:42:44
这里的案例中是如果是子类没有attack的话才会引用父类的attack ,它函数内容就是抛出错误。我不明白这样做有啥意义?? 那知道是这种情况直接把attack写在子类上 不写父类不就得了吗? 我不明白给父类预留接口的意义是什么 这样写的意义。。
1回答
同学你好,这么做可以理解成是为了减少冗余的代码以及确保代码的绝对正确性,比如说,父类的attack方法中调用了另外的方法,那么子类的attack方法也会产生相应的变化,如果像同学说的,直接重写子类的attack方法,虽然保证了结果的正确性,但是会使得子类的attack方法不再依赖于父类,子类attack方法的代码与父类产生了重复(重复的attack方法会使得很多事情变得复杂,可能不仅仅是多了几条语句),所以这种办法是不符合软件工程中关于重用的思想的,简单的说这个父类留接口的方法有点类似于我们做html/css布局时,相同样式合并书写,不同样式单独书写,比如:

这样会使得所有的儿子的字号都是20px,但实际上我们可能需要三个儿子的字号各不相同,那么就需要改成:

这里的父类预留接口,其实就是相当于当遇到特殊情况,比如子类需要继承一部分父类的特性或者方法,而子类又有自己独有的特性的时候,使用这种方法是非常便利的,同时也能减少一些重复性的代码。
希望可以帮到你,祝学习愉快!
相似问题