1.将公共操作和域放在超类。
将name,age等属性放在person'而不是stydent中,更符合继承的意义。
2.不要使用受保护的域protected
第一:子类是无限制的,任何人都可以编写子类继承类,然后访问其中的protected实例域,破坏封装。
第二:在java中,同一个包中的任何类都可以访问受保护类
3.除非继承的所有方法都有意义,否则不用继承。
这样继承会得到用不到的方法,也容易过多暴露父类信息。
4.覆盖方法,不要改变预期行为
5.使用多态,而非类型信息
使用多态性或者接口编写的代码更易于维护和扩展。
6.不要过多的使用反射。
反射可以查看域和方法,但是编译器很难发现程序中的错误,