Java中多態是個很難理解的概念,但同時又是非常重要的概念,Java三大特性(封裝、繼承、多態)之一,我們從字面上理解,就是一種類型的多種狀態,一下通過賣小汽車的例子再次說明什么是多態,其中利用到了接口。
代碼實例:
//汽車接口 interface Car{ //要求 接口中有:汽車名稱和售價 String getName(); int getPrice(); }
//寶馬類 class BMW implements Car{ @Override public String getName() { // TODO Auto-generated method stub //return null; return "寶馬"; } @Override public int getPrice() { // TODO Auto-generated method stub //return 0; return 300000; } } //奇瑞QQ class CheryQQ implements Car{ @Override public String getName() { // TODO Auto-generated method stub return "奇瑞QQ"; } @Override public int getPrice() { // TODO Auto-generated method stub return 40000; } }
//汽車出售店 class CarShop{ //收入 private int money=0; //賣出一部汽車 public void sellCar(Car car){ System.out.println("車型:"+car.getName()+"價格:"+car.getPrice()); //增加賣出車售價的收入 money+=car.getPrice(); } //售車總收入 public int getMoney(){ return money; } }
測試類:
public class jieKouDemo { public static void main(String[]args){ CarShop shop=new CarShop(); //賣出一輛寶馬 shop.sellCar(new BMW()); //賣出一輛奇瑞QQ shop.sellCar(new CheryQQ()); System.out.println("總收入:"+shop.getMoney()); } }
注意事項總結:
繼承是多態得以實現的基礎。從字面上理解,多態就是一種類型(都是Car類型)表現出來的多種狀態(寶馬汽車的名稱是BMW,售價300000;奇瑞汽車的名稱是CheryQQ,售價是40000)。將一個方法調用同這個方法所屬的主題(也就是對象或類)關聯起來叫做綁定。
綁定分為:前期綁定和后期綁定。
1.前期綁定:在程序運行之前進行綁定,由編譯器和連接程序實現,又叫做靜態綁定。比如static方法和final方法。注意,這里也包括private方法,因為他是隱式final的。
2.后期綁定:在運行時根據對象的類型進行綁定。由調用機制實現,因此又叫做動態綁定,或運行時綁定。除了前期綁定之外的所有方法都屬於后期綁定。