多態主要分爲兩個方面:
·方法的多態性:重載與覆寫
|- 重載:同一個方法名稱,根據不同的參數類型及個數可以完成不同的功能;
|- 覆寫:同一個方法,根據操作的子類不同,所完成的功能也不同。
·對象的多態性:父子類對象的轉換。
|- 向上轉型:子類對象變爲父類對象,格式:父類 父類對象 = 子類實例,自動;
|- 向下轉型:父類對象變爲子類對象,格式:子類子類對象 = (子類) 父類實例,強制;
向上轉型:
public class Test { public static void main(String args[]) { A a = new B() ; //向上轉型 a.print() ; } } |
向下轉型:
public class Test { public static void main(String args[]) { A a = new B() ; // 向上轉型 B b = (B) a; // 向下轉型 b.print() ; } } |
例: 多態方式計算圖形面積
public classGetArea { //定義計算圓面積的方法 public float getAcreage(float r) { float area = 3.14f * r * r; return area; } //定義計算矩形面積的方法 public float getAcreage(float length,float width) { float area = length * width; return area; } //程序主方法 public static void main(String[] args) { GetArea getArea = newGetArea(); //創建本類對象 float roundArea =getArea.getAcreage(4); //獲取半徑爲4的圓的面積 float rectangle =getArea.getAcreage(5.3f, 6.5f); //獲取指定長與寬的矩形面積 System.out.println("圓的面積爲:"+roundArea); //輸出圓的面積 System.out.println("矩形的面積爲:"+rectangle); //輸出矩形的面積 } } |