1. 程式人生 > >介面和抽象類的使用上的區別和選擇

介面和抽象類的使用上的區別和選擇

    介面與抽象類的使用上的區別和選擇
       首先,對於抽象類它的作用主要用於繼承和重寫,裡面可以有普通方法,但在設計上面,通常把其派生類的共有屬性和方法抽象出來,其中所有派生類中不變的方法,在抽象類中用普通方法寫出來,而所有派生類中變化的方法用抽象方法寫出來。

      另外,對於介面主要作用是實現多繼承,它也包含抽象方法,但不允許有普通方法,也不允許有構造器,因為它不是類,在設計的時候派生類必須實現介面中所有的所有的抽象方法,否則這個時候就要用抽象類了,當然這個類也可以繼承其它的類並實現該介面。

-----------------------------------------------------------------------------------

     

    抽象類的使用案例

      比如飛機大戰中FlyingObject這個抽象類,其中包含了step()  、getImage()這兩個方法都是不一樣的實現方式,所以這裡就要用抽象方法,另外,loadImage() 、paintObject()等方法實現上都類似,所以用普通方法。然後派生類再去用super()去呼叫和重寫相關方法。

      介面的使用案例:    

            

-----------------------------------------------------------------------------------

      介面和抽象類的相同點

     都不能在裡面建立物件,都可以包含抽象方法,但抽象類也可以不包含抽象方法,但一般都包含。