以下只是个人的浅薄理解,其实还是不太懂,只有以后懂了再更新。
知识点:
多态(动态绑定):除了static和final(含private)方法,其他方法都要进行动态绑定
优点:产生正确行为。编译器不知道对象方法,目的,只是后面引用的时候调用相应方法
可扩展性。所做更改不会对程序不受影响部分产生破坏。
缺陷:“覆盖”私有方法。不能达到重载目的,系统认为是2个不同方法,所以方法名可以不同。
域和静态方法。直接访问域在编译的时候解析,上转型可以直接获得基类变量,方法则返回导出类方法返回的变量值。
上转型:对某个对象的引用视其为基类的引用的做法。Shape shape = new Circle();
下转型:instanceof
忘记对象类型:只与基类打交道,不管导出类,通过上转型达到多态的目的。
构造器在多态中:构造器并不是多态?调用顺序:先是在基类构造器再层层下去,按声明顺序初始化,最后是导出类构造器。
构造器内部多态变化:在任何其他事物发生之前,将分配给对象的储存空间初始化二进制零重复上述步骤。
继承与组合设计原则:用继承表达行为间的差异,用字段表达状态的变化。导出类方法变化,组合变化状态。
总结:多态意味着不同状态。从基类继承的接口有不同展现形式,不同的动态绑定。运用继承和抽象创建理解多态。