1、缺陷:覆盖私有方法
2、缺陷:域与静态方法
这里的静态和域 与私有方法类似;会开辟独立的空间进行存储。
多态导致构造方法出现的问题:
构造顺序
1、在其他任何事务发生之前,将非配的对象初始化二进制的0;
2、如果在基类构造器中调用了基类方法需要判断基类方法是否在导出类中被覆盖,如果覆盖则调用导出类的方法,但是此时导出类中可能还存在未被初始化的属性变量,此时的变量依旧是二进制的0;
3、按照声明调用导出类的方法
4、调用导出类的构造主体
总结:
任何抽象性都应该真正的需求去产生,当必须时,应该是重构接口,而不是添加额外的间接性,并由此带来额外的复杂性;这种额外的复杂性非常显著,如果你让某人去处理这种复杂性,只是因为你意识到由于以防万一而添加了新的接口,而没有其他更有说服力的原因,那么这种设计就会存在问题。(来自于:java编程思想九章10节总结)