AVA的多態(tài)用幾句話能直觀的解釋
用一句話概括就是:事物在運(yùn)行過程中存在不同的狀態(tài)。
- 要有繼承關(guān)系
- 子類要重寫父類的方法
- 父類引用指向子類對(duì),
JAVA的多態(tài)和C++有什么區(qū)別?
- C++中,如果父類中的函數(shù)前邊標(biāo)有virtual,才顯現(xiàn)出多態(tài)。
- 如果父類func是virtual的,則
Super *p =new Sub();
p->func(); // 調(diào)用子類的func
如果不是virtual的,p->func將調(diào)用父類原來的函數(shù)。
- Java中,不管寫不寫virtual都是多態(tài)的,子類的同名函數(shù)會(huì)override父類的。與C++很不同的是,初始化的過程也不相同。在還未初始化子類的時(shí)候,子類的同名函數(shù)就已經(jīng)覆蓋了父類的了。