国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

抽象函數和抽象類

2019-11-14 21:41:22
字體:
來源:轉載
供稿:網友
抽象函數和抽象類

函數由函數的定義(返回值類型、函數名和參數列表)和函數體構成。

抽象函數:只有函數的定義,沒有函數體,使用abstract關鍵字來定義。如

abstract void fun();

錯誤原因:在一個類當中擁有一個或多個抽象函數時,那這個類必須定義為抽象類。

什么是抽象類?

使用abstract定義的類叫做抽象類(基類)。

[1] 不能調用抽象類的構造函數從而生成抽象類的對象。

[2] 一個類當中包含抽象函數,那么這個類必須是抽象類。

[3] 一個類當中沒有抽象函數,那么這個類也可以是抽象類。

抽象類的作用:用于被繼承,抽象類的子類可以生成對象

當子類繼承了作為父類的抽象類后,由于抽象類的抽象函數也可以被繼承,根據第[2]條需要把子類定義為抽象類,但這樣還是不能生成對象,除此之外,可通過復寫抽象函數來增加函數體,這樣就可以生成對象了。

abstract class Person{      Person(){           System.out.

class Chinese extends Person{      Chinese(){           System.out.println("Chinese的構造函數");      }      void eat(){ //復寫           System.out.println("用筷子吃飯");      }}

class Test{      public static void main(String args[]){           Person p = new Chinese();//向上轉型           p.eat();      }}

抽象類可以擁有構造函數嗎??

雖然不能用new來調用抽象類的構造函數,但是抽象類的子類可以通過super來調用抽象類的構造函數,所以結論是可以的。

為什么要使用抽象類?

如果把父類定義為抽象類,把要由子類來實現功能的函數定義為抽象函數,如果忘記復寫就會產生語法錯誤。強制要求子類在繼承父類時對這個抽象函數進行復寫來減少錯誤。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 车险| 正镶白旗| 宁远县| 凤山县| 喀喇| 德兴市| 柞水县| 鄂州市| 连山| 包头市| 潞城市| 江都市| 胶南市| 嘉定区| 安乡县| 和龙市| 沭阳县| 新安县| 竹北市| 桂平市| 伊春市| 衡山县| 乃东县| 启东市| 逊克县| 鲁山县| 黄石市| 重庆市| 当雄县| 潍坊市| 化德县| 基隆市| 鄂尔多斯市| 黔西县| 衡阳县| 同仁县| 中宁县| 柳江县| 武山县| 河东区| 高邑县|