Java抽象類與介面

2021-09-12 10:40:47 字數 3661 閱讀 8241

2. 介面的定義與使用

1.所有的抽象類必須有子類

2.抽象類的子類必須覆寫所有的抽象方法(子類不是抽象類)

3.抽象類的物件可以通過物件多型性利用子類為其初始化

4.private與abstract不能同時使用

舉例:使用乙個抽象類

abstract

class

person

public

void

setname

(string name)

public

abstract

void

getpersoninfo()

;//抽象方法

}class

student

extends

person

}public

class

test

}//子類實現

抽象類中包含有抽象方法,而抽象方法不包含方法體,即沒有具體實現。因此抽象類不能直接產生例項化物件

舉例:使用抽象類的另一種方式

abstract

class

person

public

void

setname

(string name)

public

abstract

void

getpersoninfo()

;//抽象方法

public

static person getinstance()

}return

newstudent()

;}}public

class

test

}//子類實現

abstract

class

person

public string getname()

public

void

setname

(string name)

}class

student

extends

person

public

void

getpersoninfo()

}public

class

test}/*

父類構造方法

子類構造方法

張三*/

如果父類沒有無參構造,那麼子類構造必須使用super明確指出使用父類哪個構造方法

舉例:一段特殊的**

abstract

class

apublic

abstract

void

print()

;}class

bextends

apublic

void

print()

}public

class

test

}//0

物件的例項化操作實際需要以下幾個步驟:

abstract

class

a//空方法,普通方法

}public

class

test

}

舉例:定義乙個簡單的介面

inte***ce

imessage

舉例:子類實現介面與父類介面之間的轉換

inte***ce

imessage

inte***ce

platform

inte***ce

combination

extends

imessage

,platform

abstract

class

company

//子類qqmessage繼承company類實現combination介面

class

qqmessage

extends

company

implements

combination

public

void

getinfo()

public

void

supportplatform()

}//msnmessage實現兩個介面

class

msnmessage

implements

imessage

,platform

public

void

supportplatform()

}public

class

test

public

static

void

printplatform

(platform platform)

public

static

void

main

(string[

] args)

else

plantform.

supportplatform()

; system.out.

println()

;printimessageinfo

(qq)

;printplatform

(qq)

; company company = qq;

company.

producter()

;}}/*

hello qq message

qq支援windows平台和mac平台

hello msn message

msn 支援windows平台

message是platform的例項化物件

qq支援windows平台和mac平台

hello qq message

qq支援windows平台和mac平台

tencent 出品

*/

class

aextends

bimplementsc,e

abstract

class

a implents b

inte***ce

aextends

b,c

舉例:電腦上可以使用的任何usb裝置(u盤,印表機)

//usb標準

inte***ce

usbclass

computer

}class

udisk

implements

usbpublic

void

work()

}class

printdisk

implements

usbpublic

void

work()

}public

class

test

}

Java抽象類與介面

一.概念 在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是反過來卻不是這樣。並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。比如 如果我們進行乙個圖形編輯軟體的開發,就會發現問題領域存在著圓 三角形這樣一些具體概念。它們是不同的...

JAVA抽象類與介面

抽象方法 使用abstract關鍵字修飾的方法,沒有方法體,抽象方法只能使用public 或者protected修飾。public abstract void fun 抽象類 使用abstract關鍵字修飾的類 包含抽象方法的類是抽象類 抽象類可以不包含抽象方法 抽象類只能被繼承,不能自己建立例項 ...

Java 抽象類 與 介面

如果乙個類含有抽象方法,則稱這個類是抽象類,抽象類必須使用abstract 關鍵字修飾。因為抽象類中含有抽象方法,所以不能用抽象類建立物件。抽象方法 只有宣告,沒有實現。如果乙個類繼承了乙個抽象類,他必須實現這個抽象類的全部抽象方法,否則,他依然是個抽象類。如下 private abstract c...