①将公共操作和域放在父类当中
将公共操作放在超类当中,所有的子类都将继承,即减少了代码行数,有增强的封装性。例如:将name,age等属性放在person类当中,而不是student中,更符合继承设计思想。
②不要使用受保护的域
protected机制尽量不要使用,其原因有二:第一,子类集合是无限制的,任何一个人都能够由某个类派生一个子类,并编写代码直接访问protected的实例域,从而破坏了封装性。第二,在Java语言中,在同一个包中的所有类都可以访问protected域,而不管它是否是这个类的子类。
还有一点,protected方法对于指示那些不提供一般用途而应用在子类中重新定义的方法很有用。
③使用继承实现“is-a”的关系
使用继承很容易达到节省代码的目的,但有时候也被滥用了。例如,假设需要定义一个钟点工类。钟点工的信息包括姓名、雇佣日期,但是没有薪水。他们是按小时计薪,而且不因加班而加薪,这似乎应该由Employee类派生子类Contractor(承包人),再添加一个hourlyWage(小时工资)的域。这并不是一个好设计,这样一来,每个钟点工对象都包含了薪水和计时工资两个域。
钟点工和雇员之间不属于“is-a”的关系
④除非所有继承的方法都有意义,否侧不要使用继承
⑤在覆盖方法时,不要改变预期的行为
置换原则不仅应用在语法上面,而且也可以应用于行为,这一点更加重要。在覆盖方法的时候,不应该改变行为的内涵,除非有进行的理由,编译器不会检查重新定义的方法是否有意义。
⑥使用多态
关于多态,本人还是认为是十分重要:可以看一下我写的关于多态那篇博文,这里就不多说了
使用多态方法或者接口编写的代码比使用对多种类型进行检测的代码更加容易维护和发展
⑦不要过多的使用反射
反射机制使人们可以通过在运行时时查看方法、域和构造函数,这种功能实际上特别实用,但是有一点就是,不适合编写应用程序。编译器很难帮助人们发现程序当中的错误,因此只有在运行的时候才发现错误产生异常
继承这章终于学完了,至于已经学到什么水平,当然还很浅薄,但是我相信通过每日一点一点的积累,最后成功的人一定是曾经不断努力,而且坚持下来的人,加油少年!
小伙伴们可以关注我的公众号,留言必回复哦~~~
----------------------------------
长按关注哦(看那两撇小胡子)
基础 | 心得 | 经历 | 更重要的是开心嘛!