麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

面向對象高級特性1:抽象類

2019-11-14 12:58:04
字體:
來源:轉載
供稿:網友

一、抽象類(abstract class) 隨著繼承層次中一個個新子類的定義,類變得越來越具體,而父類則更一般,更通用。類的設計應該保證父類和子類能夠共享特征。有時將一個父類設計得非常抽象,以至于它沒有具體的實例,這樣的類叫做抽象類。 這里寫圖片描述 當多個類中出現相同功能,但是功能主體不同,這時可以進行向上抽取。有時只抽取功能定義,而不抽取功能主體。

class Chinese{ public void speak(){ System.out.一種抽取:

class Person{ public void speak(){//沒具體語言}}//又不能省略,因為speak是Person類的一個行為特征,需要在Person類中得到體現

另一種抽取:

abstract class Person{ public abstract void speak();}class Chinese extends Person{ public void speak(){ System.out.println("中文"); }}class American extends Person{ public void speak(){ System.out.println("英文"); }}class Japanese extends Person{ public void speak(){ System.out.println("日文"); }}

二、語法 1、用abstract關鍵字來修飾一個類時,這個類叫做抽象類; 2、用abstract來修飾一個方法時,該方法叫做抽象方法。 抽象方法:只有方法的聲明,沒有方法的實現。以分號結束:

權限修飾符 abstract 返回值類型 方法名(參數列表);

3、含有抽象方法的類必須被聲明為抽象類。 4、抽象類不能被實例化。抽象類是用來被繼承的,抽象類的子類必須重寫父類的抽象方法,并提供方法體。若沒有重寫全部的抽象方法,仍為抽象類。 5、不能用abstract修飾屬性、私有方法、構造器、靜態方法、final的方法。

三、抽象類的應用 抽象類是用來模型化那些父類無法確定全部實現,而是由其子類提供具體實現的對象的類。 在航運公司系統中,Vehicle類需要定義兩個方法分別計算運輸工具的燃料效率和行駛距離。 這里寫圖片描述 問題:卡車(Truck)和駁船(RiverBarge)的燃料效率和行駛距離的計算方法完全不同。Vehicle類不能提供計算方法,但子類可以。 解決方案 java允許類設計者指定:超類聲明一個方法但不提供實現,該方法的實現由子類提供。這樣的方法稱為抽象方法。有一個或更多抽象方法的類稱為抽象類。 Vehicle設計為一個抽象類,有兩個抽象方法。

abstract class Vehicle{ public abstract double calcFuelEfficiency();//計算燃料效率的抽象方法 public abstract double calcTripDistance(); //計算行駛距離的抽象方法}class Truck extends Vehicle{ public double calcFuelEfficiency( ){ //寫出計算卡車的燃料效率的具體方法 return 0.0; } public double calcTripDistance( ){ //寫出計算卡車行駛距離的具體方法 return 0.0; }}class RiverBarge extends Vehicle{ public double calcFuelEfficiency( ) { //寫出計算駁船的燃料效率的具體方法 return 0.0; } public double calcTripDistance( ) { //寫出計算駁船行駛距離的具體方法 return 0.0; }}/* * 抽象類與普通類的區別 * 1、抽象類是abstract,它可以包含抽象方法 * 2、抽象類不能被實例化,普通類可以實例化 * 3、抽象類中可以屬性嗎?可以 * 4、抽象類中可以構造方法嗎?可以,可以為抽象類中的屬性初始化 * 5、抽象類中可以非抽象的成員方法嗎?可以 * 6、抽象類中可以靜態方法嗎?因為靜態方法的調用不需要對象 * 7、抽象類中可以靜態的屬性嗎?可以使用,表示所子類對象共享 * 8、抽象類中一定要有抽象方法嗎?不是,可以沒有抽象方法,這個時候的出發點是限制這個類不能創建對象 * * 哪些地方可以使用abstract修飾 * (1類:可以,表示不能實例化這個類,可以包含抽象方法 * (2屬性:沒抽象屬性一說,而且抽象的東西就是想要被子類覆蓋的,而屬性不能被覆蓋 * (3構造方法:不可以,構造方法不能被繼承更談不上重寫 * (4成員方法:可以 * (5局部變量:不可以 * (6代碼塊:不可以,代碼塊只能被唯一的修飾符static修飾 * (7可以在靜態方法前面加abstract:不能,一個不能被重寫,一個必須被重寫 * (8可以在final的方法前面嗎?不能,一個不能被重寫,一個必須被重寫 * (9可以在private方法前面嗎?在子類中不可見,所以沒法進行重寫 * */
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 热99在线视频 | 成人毛片网| 久久99国产精品久久 | 欧美精品亚洲人成在线观看 | 国产成人精品一区在线播放 | 精品中文字幕视频 | 911网站大全在线观看 | 黄色va视频| 免费黄色欧美视频 | av在线免费在线观看 | www69xxxxx| 国产精品视频一区二区三区四 | 蜜桃视频在线免费播放 | 红桃一区| 私库av在线免费观看 | 亚洲精品 在线播放 | 国产精品久久久久久久久久久天堂 | 日本a级一区 | 曰韩一级片 | 欧美性视频一区二区 | 一区二区三区欧美在线 | 中文字幕在线网 | 91一区二区三区久久久久国产乱 | 精精国产xxxx视频在线播放7 | 国产精品久久久久网站 | 久久狠狠高潮亚洲精品 | 成人男女啪啪免费观看网站四虎 | 久久91亚洲人成电影网站 | 久久精品a一级国产免视看成人 | 日韩激情一区 | 欧美韩国日本在线 | 黄色片免费看看 | 亚洲xxx视频| 91久久久久久久久久久久久久 | 亚洲自拍第二页 | 国产精品久久久免费 | 天天躁狠狠躁夜躁2020挡不住 | 久草在线高清 | 91精品国产综合久久青草 | 成人在线免费看 | 午夜视频在线观看免费视频 |