2015-02-12 58 views
1
  1. 進口dart:html,我可以創造一個新的子類的 ButtonElement出廠構造MyButton,並添加一些新的功能 如getButtonName(){} ...
  2. 當程序運行時,我得到一個實例如何創建一個新的子類延伸ButtonElement

    MyButton btn=new MyButton() 
    
  3. 但實例「BTN」運行時類型仍是ButtonElement ,並且不能調用getButtonName()函數。如果我使用btn as MyButton然後我得到這個錯誤

    Uncaught CastError: Casting value of type ButtonElement to incompatible type MyButton

下面是代碼

class MyButton extends ButtonElement { 
     factory MyButton(){ 
     return new ButtonElement(); 
     } 

     String getButtonName(){ 
     return "ButtonName"; 
     } 
    } 
+0

爲什麼超類使用工廠構造函數,那麼強制子類也必須使用工廠構造函數呢?並且該實例無法訪問該類的靜態方法?爲什麼? – 2015-02-12 05:44:44

回答