Java多態(tài)是指對(duì)象在運(yùn)行時(shí)能夠根據(jù)實(shí)際類型執(zhí)行不同的操作,而不必改變代碼的實(shí)現(xiàn)。比如一個(gè)父類可以定義一些基本的方法和屬性,再由其子類繼承這些方法和屬性,可以使用父類來(lái)定義子類即可。這種繼承關(guān)系的存在以及子類可以重寫(xiě)父類的某些方法的行為,就為多態(tài)提供了基礎(chǔ)。
Java多態(tài)的應(yīng)用
一個(gè)常見(jiàn)的Java多態(tài)應(yīng)用是在接口使用。接口定義了一組方法和屬性,而不需要去實(shí)現(xiàn)。接口的實(shí)現(xiàn)類就必須實(shí)現(xiàn)這些方法和屬性。接口和實(shí)現(xiàn)類之間的關(guān)系正是Java多態(tài)的一個(gè)經(jīng)典的表現(xiàn)。接口的使用,是在不同的情況下能夠?qū)Σ煌膶?duì)象做出相應(yīng)的動(dòng)作,而不需要知道對(duì)象是什么類型。
能夠使用父類方法的優(yōu)勢(shì)
使用Java多態(tài)的另一個(gè)好處是可以重用代碼,減少重復(fù)代碼。Java多態(tài)的特性可以讓代碼更簡(jiǎn)單易懂,便于修改和升級(jí)。因?yàn)镴ava多態(tài)只關(guān)注對(duì)象的行為,而不關(guān)心對(duì)象的類型,所以可以用一種父類方法來(lái)實(shí)現(xiàn)所有子類的共同操作,這樣即使我們?cè)黾恿诵碌淖宇?,也不需要修改原有代碼。