Java是一門面向?qū)ο蟮木幊陶Z言,多態(tài)性是它的一個非常重要的特征。多態(tài)性使得Java程序更靈活,而重載則是Java多態(tài)性的一種體現(xiàn)。
public class OverloadingDemo { public void display(int a){ System.out.println("調(diào)用了參數(shù)為int的方法:" + a); } public void display(String b){ System.out.println("調(diào)用了參數(shù)為String的方法:" + b); } public void display(int a, String b){ System.out.println("調(diào)用了參數(shù)為int和String類型的方法,int參數(shù)為:" + a + ",String參數(shù)為:" + b); } }
以上代碼中,display方法被重載了三次,分別接受一個int型參數(shù)、一個String型參數(shù)和一個int型和一個String型參數(shù)。這就是Java重載的體現(xiàn),即在同一個類中,可以定義相同名稱的方法,只要它們的參數(shù)列表不同,也就是參數(shù)個數(shù)、類型、順序不同。
多態(tài)性通過運行時的動態(tài)綁定實現(xiàn)。在Java中,動態(tài)綁定是指將方法調(diào)用的實現(xiàn)綁定到實際對象的類型上。也就是說,假設(shè)有一個父類和它的兩個子類,如果調(diào)用子類中的方法,那么Java運行時系統(tǒng)會自動選擇正確的方法執(zhí)行。
class Animal { public void makeSound() { System.out.println("動物發(fā)出一些聲音!"); } } class Dog extends Animal { public void makeSound() { System.out.println("汪汪汪"); } } class Cat extends Animal { public void makeSound() { System.out.println("喵喵喵"); } } public class AnimalSound { public void makeSound(Animal animal) { animal.makeSound(); } public static void main(String[] args) { AnimalSound animalSound = new AnimalSound(); animalSound.makeSound(new Animal()); animalSound.makeSound(new Dog()); animalSound.makeSound(new Cat()); } }
在以上代碼中,AnimalSound類中的makeSound方法采用多態(tài)性來實現(xiàn)。makeSound方法中傳遞的是Animal類型的參數(shù),具體的方法實現(xiàn)取決于運行時傳遞的參數(shù)。在main方法中,分別傳遞了Animal、Dog、Cat三個參數(shù)。運行程序,將輸出以下結(jié)果:
動物發(fā)出一些聲音! 汪汪汪 喵喵喵
因此,Java的多態(tài)性和重載是緊密相關(guān)的,重載增加了Java程序的靈活性,而多態(tài)性則使得Java代碼更加可維護、可擴展。
上一篇python畫晶圓