Java是一門面向對象編程語言,其中多態和泛型是其中兩個核心的概念。
多態是指在父類中定義一個方法,然后由子類來實現該方法,但是不同的子類可以有不同的實現方式。在執行該方法的時候,會根據具體的對象類型來決定調用哪一個子類的實現。這種特性可以大大簡化代碼的編寫,并且增強代碼的可擴展性和維護性。
public abstract class Animal { public abstract void makeSound(); } public class Dog extends Animal { public void makeSound() { System.out.println("汪汪汪"); } } public class Cat extends Animal { public void makeSound() { System.out.println("喵喵喵"); } } public class Test { public static void main(String[] args) { Animal a1 = new Dog(); Animal a2 = new Cat(); a1.makeSound(); // 汪汪汪 a2.makeSound(); // 喵喵喵 } }
泛型是Java中一種強類型的編程機制,它可以讓代碼更加安全可靠。泛型的核心在于參數化類型,即可以在創建對象時指定數據類型。這里的數據類型可以是基本數據類型、類以及接口等。
public class Pair{ private T first; private T second; public Pair(T first, T second) { this.first = first; this.second = second; } public T getFirst() { return first; } public T getSecond() { return second; } public void setFirst(T first) { this.first = first; } public void setSecond(T second) { this.second = second; } } public class Test { public static void main(String[] args) { Pair p1 = new Pair<>("Hello", "World"); Pair p2 = new Pair<>(1, 2); System.out.println(p1.getFirst() + " " + p1.getSecond()); // Hello World System.out.println(p2.getFirst() + p2.getSecond()); // 3 } }
所有非基本類型的數據都是繼承自Object,Object是所有Java類的超類。所以在不傳入泛型實參的時候,泛型類可以是任意類型,此時泛型類和普通類沒有什么區別了。
綜上所述,Java的多態和泛型是這門語言中兩個重要的特性,聽說掌握了多態和泛型,Java高手就離你不遠了。