回覆列表
  • 1 # zkksi47256

      Calendar c = new Calendar(); 出現 new Calendar()就會執行例項化一個物件了。所以如果是抽象類就不能這樣new的。要new 它沒有abstract的子類。  抽象類是指不允許被例項化的類;抽象方法是沒有方法體的方法。  

    1、抽象類可以不包括抽象方法,它反正不會去例項化,抽象類不能被例項化,也就是不能用new關鍵字去產生物件,抽象方法只需宣告,而不需實現,抽象類的子類必須覆蓋所有的抽象方法後才能被例項化,否則這個子類還是個抽象類,裡面的方法是不是抽象的沒有本質影響。  

    2、但是含有抽象方法的類絕不能被例項化,否則執行這個方法的時候,怎麼辦?  

    3、如果子類是非抽象的,那麼它就必須實現父類中的抽象方法;否則,它繼承來的抽象方法仍然沒有方法體,也是個抽象方法,此時就與“含有抽象方法的類必須是抽象類”相矛盾了。  抽象類與介面緊密相關,它們不能例項化,並且常常部分實現或根本不實現。抽象類和介面之間的一個主要差別是:類可以實現無限個介面,但僅能從一個抽象(或任何其他型別)類繼承。從抽象類派生的類仍可實現介面。可以在建立元件時使用抽象類,因為它們使您得以在某些方法中指定不變級功能,但直到需要該類的特定實現之後才實現其他方法。抽象類也制定版本,因為如果在派生類中需要附加功能,則可以將其新增到基類而不中斷程式碼。  在實現抽象類時,必須實現該類中的每一個抽象方法,而每個已實現的方法必須和抽象類中指定的方法一樣,接收相同數目和型別的引數,具有同樣的返回值。  

  • 中秋節和大豐收的關聯?
  • 記憶體卡寫有保護是什麼意思?