2015年1月29日 星期四

物件導向 ─ 多型 (觀念)

多型


以哺乳類動物為例


             小狗、小貓皆為哺乳類動物,反言之 哺乳類裡有小狗、小貓這兩種子類別(包含了繼承的觀念)


             所以 哺乳類又為抽象類別(abstract)也是小狗小貓的父類別。


             
             ○ 當哺乳類(父類別)要產生很多子類別

                mammals [] m = new dog[],new cat[], new fish[]; 中括號(new 出子類別)



             ○ 哺乳類可以指向子類別(ex:小狗)去產生一個通用型態

                 
                     dog d = new mammals ();(屬性);小括號(屬性)

             

             ○ instanceof 是用來判斷父類別參用哪一個子類別的實例

                  mammals m  = new  dog d (屬性);


                       if  ( m instanceof  dog) {}   // true →  (表示父類別(哺乳類)現在是指向子類別(小狗))


              ○ 當父類別參用了子類別時,並無法更改其宣告值,除非強制轉型為子類別才能修改其宣告值


                   mammals m  = new  dog d (屬性);


                   m.name = " candy";

                
                   m.age = 5;

                   

                 強迫轉型
         
                           dog d = (dog) m;
                
                           d.name = "candy";
                   
                           d.age = 5;
                   
            

沒有留言:

張貼留言