談談我對多態的理解?
阿新 • • 發佈:2017-12-03
哪些 extends 對象 構造方法 bsp 自己的 ext 調用 根據
舉例:
父類:Person{}
子類:Child extends Person{}
父類的引用指向子類的對象:Person p = new Child();
理解:在編譯期認為p是父類的對象,在運行期認為p是子類的對象
////////////////////子類執行方法的情況:
1.子類重寫了父類方法,當使用p去調用此方法會執行子類的方法
這樣理解:父類是(國家) 子類是(地方),國家頒布了一些惠民政策(方法),地方要實施惠民政策(方法),於是派了一個欽差(p)去地方監督執行,政策肯定要根據當地情況去執行(這就是為什麽會執行子類的方法);
2.子類中沒有重寫父類某方法,當使用p去調用該某方法的時候,執行的是父類的方法
3.子類想用p執行自己的特有的方法是不可以的
這樣理解:是不行的,因為有國家政策的限制
////////////////////對Person p = new Child();會觸發哪些方法的理解
1.子類繼承父類,對父類構造方法的要求
1.1 父類中有無參構造,子類可以直接繼承
1.2 父類中只有有參構造,子類不可能有無參構造,子類必須在其有參構造中使用super(args)調用父類有參構造
2.在運行期間,會先走父類的有參或無參構造,其次是子類的無參或有參構造
談談我對多態的理解?