Java中抽象類和接口兩者區別

一:抽象類

 

  1. 簡介
         用abstract修飾的類叫做抽象類。
         
         抽象類就是爲了繼承而存在的,如果你定義了一個抽象類,卻不去繼承它,
         那麼等於白白創建了這個抽象類,因爲你不能用它來做任何事情。對於一個父類,
         如果它的某個方法在父類中實現出來沒有任何意義,必須根據子類的實際需求來進行不同的實現。
         
  2.  抽象類的特點
         ⑴抽象類不能有對象,(不能用new此關鍵字來創建抽象類的對象)
                   a:創建一個抽象類Animal
                            
                   b:嘗試創建Animal對象
                            
         ⑵有抽象方法的類一定是抽象類
                   a:有抽象方法的類一定是抽象類,但是抽象類中不一定有抽象方法
                          
                   b:但是抽象類中不一定有抽象方法
                          
                          
         ⑶抽象類中的抽象方法必須在子類中被重寫
                    a:創建一個抽象類Animal
                           
                    b:創建一個子類Cat
                             
         ⑷abstract修飾的方法爲抽象方法,此方法不能有方法體(就是什麼內容不能有)
                  
                  注意:抽象方法不能有方法體,在方法後面加一個大括號而裏面什麼都不寫也是不行的,
                             編譯器會報“abstract methods do not specify a body”這樣一個錯誤。
                    

二:接口

  1. 簡介
            接口就是一個規範和抽象類比較相似。它只管做什麼,不管怎麼做。通俗的講,接口就是某個事物對外提供的一些功能的聲      明,其定義和類比較相似,只不過是通過interface關鍵字來完成。
  2.  接口的特點
              ⑴接口中的所有屬性默認爲:public static final ****;並且要有初始化值
                     
                     下面給與初始化值,然後測試一個子類
                      
                      
                      由上可知,雖然我們定義num變量的時候,沒有設置final屬性,但是通過上面的
                      效果可知num這個變量的值還是不可修改的,默認帶有final屬性。
              ⑵接口中的所有方法默認爲:public abstract ****;              

三:接口和抽象類的區別

               

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章