Java中的多態(tài)和非多態(tài)是面向?qū)ο缶幊讨械膬蓚€重要概念。
多態(tài)是指不同類的對象可以通過同一種方法進行處理,在不同的情況下表現(xiàn)出不同的行為。在Java中,多態(tài)體現(xiàn)在方法重載和方法重寫中。方法重載是指同一個類中的不同方法可以擁有相同的方法名,但參數(shù)列表必須不同;而方法重寫是指子類可以重寫父類的方法,以實現(xiàn)不同的行為。
// 方法重載 public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } // 方法重寫 public class Animal { public void eat() { System.out.println("動物在吃"); } } public class Dog extends Animal { public void eat() { System.out.println("狗在吃骨頭"); } }
非多態(tài)是指同一類中的不同對象在調(diào)用方法時表現(xiàn)出相同的行為。在Java中,非多態(tài)體現(xiàn)在普通方法和靜態(tài)方法中。普通方法是指需要實例化對象后才能調(diào)用的方法,而靜態(tài)方法則是可以直接通過類名調(diào)用的方法。
// 普通方法 public class Person { public void sayHello() { System.out.println("你好"); } } Person p = new Person(); p.sayHello(); // 靜態(tài)方法 public class MathUtil { public static int add(int a, int b) { return a + b; } } int result = MathUtil.add(3, 5);
在選擇使用多態(tài)或非多態(tài)時,需要根據(jù)實際情況進行判斷。如果需要處理不同類型的對象,并且需要實現(xiàn)不同的行為,那么就需要使用多態(tài)。否則,就可以使用普通方法或靜態(tài)方法。