Java中的多態和非多態是面向對象編程中的兩個重要概念。
多態是指不同類的對象可以通過同一種方法進行處理,在不同的情況下表現出不同的行為。在Java中,多態體現在方法重載和方法重寫中。方法重載是指同一個類中的不同方法可以擁有相同的方法名,但參數列表必須不同;而方法重寫是指子類可以重寫父類的方法,以實現不同的行為。
// 方法重載 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("狗在吃骨頭"); } }
非多態是指同一類中的不同對象在調用方法時表現出相同的行為。在Java中,非多態體現在普通方法和靜態方法中。普通方法是指需要實例化對象后才能調用的方法,而靜態方法則是可以直接通過類名調用的方法。
// 普通方法 public class Person { public void sayHello() { System.out.println("你好"); } } Person p = new Person(); p.sayHello(); // 靜態方法 public class MathUtil { public static int add(int a, int b) { return a + b; } } int result = MathUtil.add(3, 5);
在選擇使用多態或非多態時,需要根據實際情況進行判斷。如果需要處理不同類型的對象,并且需要實現不同的行為,那么就需要使用多態。否則,就可以使用普通方法或靜態方法。