熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

接口和抽象類有什麼區別?

2013-11-23 19:25:29  來源: Java核心技術 

  作者 Allen
   抽象方法是必須實現的方法就象動物都要呼吸但是魚用鰓呼吸豬用肺呼吸
   動物類要有呼吸方法怎麼呼吸就是子類的事了
   現在有很多討論和建議提倡用interface代替abstract類兩者從理論上可以做一般性的混用但是在實際應用中他們還是有一定區別的抽象類一般作為公共的父類為子類的擴展提供基礎這裡的擴展包括了屬性上和行為上的而接口一般來說不考慮屬性只考慮方法使得子類可以自由的填補或者擴展接口所定義的方法就像JAVA王子所說的事件中的適配器就是一個很好的應用
   用一個簡單的例子比如說一個教師我們把它作為一個抽象類有自己的屬性比如說年齡教育程度教師編號等等而教師也是分很多種類的我們就可以繼承教師類而擴展特有的種類屬性而普遍屬性已經直接繼承了下來
   而接口呢~還是拿教師做例子教師的行為很多除了和普通人相同的以外還有職業相關的行為比如改考卷講課等等我們把這些行為定義成無body的方法作為一個集合它是一個interface而教師張三李四的各自行為特點又有不同那麼他們就可以擴展自己的行為body從這點意義上來說interface偏重於行為
   總之在許多情況下接口確實可以代替抽象類如果你不需要刻意表達屬性上的繼承的話
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26846.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.