我所理解的抽象類和抽象方法

2021-08-01 08:17:51 字數 789 閱讀 3459

用了1年的asp.net mvc來開發,但我對抽象類和抽象方法還是比較模糊,看過許多文件,下面我就講我所理解的抽象類和抽象方法寫下來,加深記憶。

抽象類是什麼,就是包含了至少乙個抽象方法的類,用abstract修飾,也可以這麼說,你可以用abstract宣告乙個抽象類,但是可以不要抽象方法,但是這又和普通類有什麼區別呢。宣告抽象類無非就是想實現抽象方法override, 以實現多型。比如宣告抽象類public abstract class person 宣告了乙個人的抽象類,再宣告乙個女人的類繼承抽象類,並且重寫eat這個抽象方法 public class women:person }  抽象類也可以繼承抽象類,但可以不提供基類的抽象方法的重寫,若其他類繼承該抽象子類,則必須實現該類和基類的所有抽象方法。

有關抽象類和抽象方法的問題,我個人也做了一些總結,如下:

abstract 關鍵字用於將類指定為抽象類,這些抽象類可以派生出其他類。

乙個抽象類可以同時包含抽象方法和非抽象方法。

有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法

。抽象方法的目的在於指定子類必須實現與這一方法關聯的行為。

抽象方法只在子類中真正實現,這表明抽象方法只存放函式原型(方法的返回型別,使用的名稱及引數),而不涉及主體**。

如果父類被宣告為抽象類,並存在未實現的抽象方法,那麼子類就必須實現父類中所有的 abstract 成員,除非該類也是抽象的。 

抽象類不能被例項化,使用 override 關鍵字可在派生類中實現抽象方法,經 override宣告重寫的方法,其簽名必須與 override 方法的簽名一致。

我所理解的介面和抽象類

參考 在實踐過程中,抽象類和介面都經常用到。但是,對於什麼情況下該用抽象類,什麼情況下該用介面,總是有點搞不清楚。於是,在閱讀別人對著兩者理解之後,終於對兩者的區別有了更進一步的理解。抽象類重點在於對於屬性和方法的繼承 而介面則重在多個類 可能他們之間毫無聯絡 對同一種方法或者屬性的描述,體現了多型...

抽象方法和抽象類

思想 利用通用介面建立的一種基本形式,以此表示所有匯出類的共同部分 概念 1 抽象方法 僅有宣告,沒有方法體 2 抽象類 含抽象方法的類 要點 抽象類可以不含抽象方法 抽象類不能被例項化 不能使用 new 關鍵字 子類繼承抽象父類而不提供方法定義,則子類也必須為抽象類 抽象類可以包含屬性 方法 構造...

抽象方法和抽象類

1.什麼是抽象方法 定義 乙個方法如果沒有方法體 乙個方法不使用 直接使用分號結束的方法,才是沒有方法體的方法 則這個方法就是抽象方法 一 宣告乙個方法,不適用 而直接分號結束 二 如果是抽象方法,必須使用 abstract 抽象關鍵字來修飾 三 不是抽象類,不可以使用抽象方法 2.什麼是抽象類 一...