Java是一種面向對象編程語言,其中泛化和多態是其中兩個核心的概念。
首先,泛化是指從特殊到一般的過程,也就是將某些具有相同屬性和行為的事物抽象成一個通用的類,這個過程稱為泛化。Java中采用繼承機制實現泛化,即在定義一個新類時,可以通過繼承一個已有的類來得到它的屬性和方法。例如,狗和貓都可以繼承動物這個類,而動物類中又包含了各種動物都具有的屬性和方法,如名稱、年齡、呼吸、移動等。
public class Animal{ private String name; private int age; public void breath(){ //breathing code } public void move(){ //moving code } } public class Dog extends Animal{ public void bark(){ //barking code } } public class Cat extends Animal{ public void mew(){ //mewing code } }
而多態是指在繼承、接口等多種手段的支持下,實現用同一種方法或命令調用子類不同對象的行為。也就是說,可以用一個指向子類對象的父類引用變量來調用該子類對象的方法。這種機制使得我們能夠更加靈活地處理不同類型的對象,實現同樣的功能。
public static void main(String[] args){ Animal a = new Animal(); // Animal reference and object Animal b = new Dog(); // Animal ref but Dog object Animal c = new Cat(); // Animal ref but Cat object a.move(); // runs the method in Animal class b.move(); // runs the method in Dog class c.move(); // runs the method in Cat class }
可以看到,由于Dog和Cat都是Animal的子類,因此它們都繼承了Animal的方法move。但是,由于在main方法中分別用一個Animal類型的引用變量分別指向了Dog和Cat類型的實例,因此move方法在不同的實例上是表現出不同的行為的。
泛化和多態是Java面向對象編程中非常重要的概念,了解它們的使用場景和用法,對于編寫高效、靈活的代碼是非常有幫助的。