抽象類相關的規定

2021-08-18 18:33:51 字數 2125 閱讀 7576

1.抽象類只是比普通類多了一些抽象方法的定義而已,所以在抽象類之中依然允許提供有構造方法,並且子類也會遵守子類物件的例項化流程。例項化子類物件錢一定要先去呼叫父類的構造方法

範例:記住主類中的抽象方法只是宣告 要在繼承類中實現該抽象方法的具體內容

abstract class person

public abstract string getinfo();//抽象方法

}class student extends person

public string getinfo()

} public class testdemo

}*******************

###################
如果說現在父類中沒有無參構造,那麼子類就必須通過super()指明要呼叫的父類構造方法

abstract class person

public string getname()

public int getage()

public abstract string getinfo();//抽象方法

}class student extends person

public string getinfo()

} public class testdemo

}

其實抽象類中存在有構造方法也很好理解,畢竟抽象類中還有屬性

所有的屬性要在物件例項化的時候進行空間的開闢

物件例項化必須要使用構造方法。(所以抽象類必須有構造)

額外話題:

關於物件例項化

物件例項化操作需要以下幾個核心步驟

·進行類的載入

·進行類物件的空間開闢

·進行類物件中的屬性初始化(構造方法)

構造方法如果還沒執行的話,所有的屬性都是其對應資料型別的預設值

abstract class a

public abstract void print();//抽象方法

}class b extends a

public void print()

}public class testdemo

}

二。抽下類中允許不定義任何的抽象方法,但是此時抽象類物件依然無法進行直接例項化處理。

abstract class a

}public class testdemo

}

三。抽象類一定不能夠使用final進行宣告,因為使用final定義的類必須有子類,而抽象類必須有子類

·抽象方法不能夠使用private進行定義,因為抽象方法必須被覆寫;(private就封裝了)

四。(抽象類能不能用static定義呢?)

抽象類也分為內部抽象類和外部抽象類,內部抽象類中可以使用static定義,描述為外部抽象類。

範例:觀察內部抽象類

abstract class a

}class x extends a

class y extends b}}

public class testdemo

}

而如果現在外部抽象類上使用了static,那麼就是語法錯誤,可內部抽象類上允許使用static

abstract class a

}class x extends a.b

}public class testdemo

}

從一般的設計角度來講,以上的問題很多時候並不會出現。

抽象類的相關問題

有abstract方法的類一定要用abstract修飾。一下是一些關於abstract修飾符的用法及規則 abstract修飾符用來修飾類和成員方法 a 用abstract修飾的類表示抽象類,抽象類位於繼承樹的抽象層,抽象類不能被例項化。b 用abstract修飾的方法表示抽象方法,抽象方法沒有方法...

抽象類 抽象方法

抽象類 1.類名前有abstruct修飾。有構造方法。在建立抽象類的子類的時候,還是會先建立抽象父類的物件的。2.抽象類不能例項化是指不能手動的new。抽象方法 1.抽象方法 沒有方法體且需要用abstruct關鍵字修飾 作用 需要改變的地方都應該是抽象。抽象方法只能存在於抽象類或介面中。2.有抽象...

抽象類,抽象方法

1 抽象類中可以有實現的方法。抽象方法必須在抽象類中。using system using system.collections.generic using system.linq using system.text namespace test 抽象類可以包含抽象屬性 public int age...