二十 java的抽象類

2021-06-07 16:31:45 字數 1881 閱讀 8192

現實世界中,人們表徵世界時,會把現實世界中的很多類具有相同特徵的事物歸為乙個抽象類。比如水果是許多植物果實的總稱,我們可以定義乙個蘋果類、定義乙個西瓜類,可以例項化乙個蘋果物件,可以例項化乙個西瓜物件,我們也可以定義乙個水果類,但是你無法例項化乙個水果物件,因為水果的例項必定是某個具體的植物果實,這時候,水果類就是乙個抽象類,水果類可以被蘋果類繼承擴充套件,可以被西瓜類繼承擴充套件,這是水果類的唯一用途。

又比如,如果進行乙個圖形編輯軟體的開發,就會發現問題領域存在著圓、三角形這樣一些具體概念,它們是不同的,但是它們又都屬於形狀這樣乙個概念,形狀這個概念在問題領域是不存在的,它就是乙個抽象概念。正是因為抽象的概念在問題領域沒有對應的具體概念,所以用以表徵抽象概念的抽象類是不能夠例項化的。

抽象類的定義形式:

一般格式如下:

abstract  class  類名

說明:l  抽象類是不能直接例項化物件的類。也即抽象類不能使用new運算子去建立物件。

l  抽象類一般包括乙個或幾個抽象方法。所謂抽象方法需在abstract修飾符進行修飾,抽象方法只有方法的宣告部分,沒有具體的方法實現部分。抽象類的子類必須重寫父類的抽象方法,才能實例子化,否則子類也是乙個抽象類。

l    抽象類中不一定包含抽象方法,但是包含抽象方法的類必須說明為抽象類。

舉例:dog類繼承於抽象類animal。

abstract class  animal

void getname()

abstract void  move();            //      抽象方法,用abstract 修飾 }

class dog extends animal

void  move()

void getage() }

public class abstractdemo          }

程式執行結果:

dog is  running!

animal's name is wangwang

dog is  5  years old

舉例二、具有啟動(startup)方法的抽象車輛類car,其每種具體子類都必須實現其自己的、專屬於某種型別車輛的具體啟動(startup)方法

//定義抽象類

carabstract

classcar //

定義抽象類

audi

並使該類繼承自

carabstract

classaudiextendscar //

定義非抽象類

audi_a6

繼承自audi

classaudi_a6extendsaudi //

實現turbo

方法public

voidturbo()  }

//定義非抽象類

audi_a8

繼承自audi

classaudi_a8extendsaudi //

實現turbo

方法public

voidturbo() }

public

classabstractclassdemo }

程式執行結果:

呼叫了奧迪a6的啟動功能!!!

呼叫了奧迪a6的加速功能!!!

呼叫了奧迪a8的啟動功能!!!

呼叫了奧迪a8的加速功能!!!

(二十) 抽象類

抽象類 用abstract修飾的類 抽象方法 只有方法宣告,沒有方法體,用abstract修飾的方法 1.抽象必須用abstract修飾 2.抽象類可以擁有普通類的所有成員,還可以有抽象方法 3.抽象類不能直接建立物件,只能通過他的非抽象子類來建立 4.抽象類的子類必須實現抽象類的所有抽象方法,如果...

Java的抽象類

抽象類 抽象類是指在類中,部分方法只有宣告 沒有實現的類,它是某一型別事物的抽象。注意 抽象類是不能被例項化的 因為它是抽象的 不具體的類 它只能在繼承中發揮作用 而抽象方法也只能在子類中被重寫 實現 後才能用子類的物件呼叫。例如,有乙個用於描述動物的 animal 父類,其中定義了 getinfo...

java的抽象類

b color black size x large 抽象類 size color b size small 在了解抽象類之前,先來了解一下抽象方法。抽象方法是一種特殊的方法 它只有宣告,而沒有具體的實現。抽象方法的宣告格式為 size color blue size large abstract ...