Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,多態(tài)是Java中面向?qū)ο缶幊痰囊粋€(gè)重要概念,其實(shí)現(xiàn)方式主要包括方法重載和方法重寫(xiě)。
重載是指在同一類(lèi)中,方法名稱(chēng)相同但參數(shù)列表不同的多個(gè)方法,這些方法會(huì)被視作完全不同的方法,其執(zhí)行結(jié)果也不同。Java支持方法重載,允許開(kāi)發(fā)者通過(guò)參數(shù)類(lèi)型、參數(shù)個(gè)數(shù)、參數(shù)順序等方式定義多個(gè)同名方法,方便編寫(xiě)代碼,提高可讀性。
public class OverloadDemo{ public void test(){ System.out.println("無(wú)參數(shù)方法"); } public void test(int x){ System.out.println("帶一個(gè)參數(shù)的方法:" + x); } public void test(int x, int y){ System.out.println("帶兩個(gè)參數(shù)的方法:" + x + "和" + y); } }
重寫(xiě)是指子類(lèi)覆蓋父類(lèi)中同名同參數(shù)列表的方法,實(shí)現(xiàn)自己的邏輯。重寫(xiě)方法的返回值類(lèi)型、訪問(wèn)修飾符、異常類(lèi)型必須與父類(lèi)中的方法相同或是其子類(lèi)型。重寫(xiě)方法不能減少訪問(wèn)權(quán)限,但可以增加訪問(wèn)權(quán)限。
public class Animal{ public void move(){ System.out.println("動(dòng)物可以移動(dòng)"); } } public class Cat extends Animal{ public void move(){ System.out.println("貓可以跑和爬"); } }
通過(guò)重載和重寫(xiě)實(shí)現(xiàn)的多態(tài),可以讓不同的對(duì)象以相同的方式響應(yīng)未知方法調(diào)用。多態(tài)可以使代碼更加靈活、簡(jiǎn)潔,提高代碼的可復(fù)用性。