參考:
在實踐過程中,抽象類和介面都經常用到。但是,對於什麼情況下該用抽象類,什麼情況下該用介面,總是有點搞不清楚。
於是,在閱讀別人對著兩者理解之後,終於對兩者的區別有了更進一步的理解。
抽象類重點在於對於屬性和方法的繼承;而介面則重在多個類(可能他們之間毫無聯絡)對同一種方法或者屬性的描述,體現了多型性。
抽象出乙個類(類),定義乙個抽象方法(判斷是否會飛)
1、抽象類
例如:抽象出乙個鳥類。對於鳥類,抽象出乙個方法。用來判斷這種鳥會不會飛。
由於鳥類中的canfly是抽象方法,因此所有繼承鳥類的子類都必須實現這個canfly方法。
/**
* 鳥*/public abstract class bird
/** * 燕子
* */
public class swallow extends bird
}/**
* 貓頭鷹
* */
public class owl extends bird
}
假如現在有這種狀況。要同時描述鳥類和飛機,它們可以有乙個共同的方法來判斷是否能飛。但是這個時候,兩者肯定是沒有繼承關係的啦。
你不能指望飛機通過繼承鳥類來獲得這個canfly的方法。
此時,你就可以把canfly抽象到介面中,然後鳥類和飛機都繼承這個介面。
2、介面
public inte***ce ifly
/** * 鳥
*/public class bird implements ifly
}/**
* 飛機
* */
public class airplane implements ifly
}
我所理解的抽象類和抽象方法
用了1年的asp.net mvc來開發,但我對抽象類和抽象方法還是比較模糊,看過許多文件,下面我就講我所理解的抽象類和抽象方法寫下來,加深記憶。抽象類是什麼,就是包含了至少乙個抽象方法的類,用abstract修飾,也可以這麼說,你可以用abstract宣告乙個抽象類,但是可以不要抽象方法,但是這又和...
介面和抽象類理解
介面和抽象類有什麼區別 你選擇使用介面和抽象類的依據是什麼?介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類 如果是類的話 他們的抽象類是人。說明,他們都是人。人可以吃東西,狗也可以吃東西,...
我對介面與抽象類的理解
1 從程式設計思想上來講,抽象類首先是類,具有分類學的意義,有兩層含義,一是以研究物件的整體來劃分的,二是互斥性。類一定存在具體的物件才有意義。分類一般採用樹型層級進行。一般情況下,上一層分類都是對下一層分類的分類。而介面表達的是一種標準,本身不具有分類學意義,但可以作為一種分類的屬性。介面是從物件...