1. 程式人生 > >面向對象7:多態

面向對象7:多態

維護 clas pre pan 自動 1.3 繼承 重用 綁定

1.多態
       1.1多態:一個失誤的多種形態
       1.2多態的表現
        行為(方法)多態:重寫和重載
        引用多態(動態綁定):編譯時的類型和運行時不一致的這種現象
                     動態綁定
        註意:引用多態存在繼承關系

        自動類型轉換
        char c=10;
        int a=c;

        強制類型轉換    
        int a=10;
        char c=(char)a;

        向上轉型
        父類=子類;
        Pet p 
= new Dog(); 向下轉型 子類 =(子類)父類; Dog d=(Dog) p; 註意:java.lang.ClassCastException:類型轉換異常 父類的運行時類型跟要轉成的子類的類型不一致 1.3 多態【子類就是父類】 為什麽使用多態:      提高程序可擴展性,可維護性,提高代碼可重用性    什麽是多態:      具有表現多種形態能力的特征 同一個實現接口,使用不同的實例而執行不同的操作
//子類,圓形 public class Circular extends Graph { private final double X=3.14; //半徑 public Circular(double r){ super(r); } public void getArea(){ double m=(super.getLen()*X*X); System.out.println("圓的半徑為"+super.getLen()+"
\n面積為"+m); } //子類,長方形 public class Rectangle extends Graph { private double weight; //寬度 public Rectangle(double len,double weight){ super(len); this.weight=weight; } public double getWeight(){ return weight; } public void getArea(){ double m=(super.getLen()*this.getWeight()); System.out.println("長方形的長為"+super.getLen()+",寬為"+this.weight+"\n面積為"+m); } //父類 public abstract class Graph { private double len; //圖形的邊長 public Graph(double len){ this.len=len; } //獲取長度 public double getLen(){ return len; } //抽象面向方法 public abstract void getArea(); }

面向對象7:多態