介面和抽象類

2021-09-03 03:12:04 字數 3525 閱讀 7347

抽象類的應用場景:

我們在描述一類事物的時候,發現該種事物確實存在著某種行為,但是這種行為目前是不具體的,那麼我們可以抽取這種行為 的宣告,但是不去實現該種行為,這時候這種行為我們稱作為抽象的行為,我們就需要使用抽象類。

抽象類的好處: 強制要求子類一定要實現指定的方法。

抽象類要注意的細節:

如果乙個函式沒有方法體,那麼該函式必須要使用abstract修飾,把該函式修飾成抽象的函式。

如果乙個類出現了抽象的函式,那麼該類也必須使用abstract修飾。

如果乙個非抽象類繼承了抽象類,那麼必須要把抽象類的所有抽象方法全部實現。

抽象類可以存在非抽象方法,也可以存在抽象的方法.

抽象類可以不存在抽象方法的。

抽象類是不能建立物件的。

抽象類是存在建構函式的,其建構函式是提供給子類建立物件的時候初始化父類的屬性的。

抽象類不能建立物件的原因:

因為抽象類是存在抽象方法的,如果能讓抽象類建立物件的話,那麼使用抽象的物件呼叫抽象方法是沒有任何意義的。

//動物類--->抽象類

abstract

class

animal

//非抽象的方法

public

void

eat(

)//移動...

public

abstract

void

run();

}//狗 是屬於動物中一種

class

dogextends

animal

public

void

run()}

//魚是屬於動物中一種

class

fish

extends

animal

public

void

run()}

class

demo

}

abstract不能與以下關鍵字共同修飾乙個方法:

abstract不能與private共同修飾乙個方法。

private修飾的只能在本類中使用,

abstract方法是用來被子類進行重寫的,有矛盾

所有不能共存.

abstract不能與static共同修飾乙個方法。

對於abstract修飾的方法沒有具體的方法實現,所有不能直接呼叫,

也就是說不可以與static共存。

abstract不能與final共同修飾乙個方法。

final:它的作用 修飾類代表不可以繼承 修飾方法不可重寫

abstract修飾類就是用來被繼承的,修飾方法就是用來被重寫的。

描述乙個圖形、圓形、 矩形三個類。不管哪種圖形都會具備計算面積與周長的行為,但是每種圖形計算的方式不一致。

//圖形類

abstract

class

myshape

public

abstract

void

getarea()

;public

abstract

void

getlength()

;}//圓形 是屬於圖形類的一種

class

circle

extends

myshape

public

void

getarea()

public

void

getlength()

}class

circle

extends

myshape()

public

void

getarea()

public

void

getlength()

}//矩形屬於圖形中的一種

class

rect

extends

myshape

public

void

getarea()

public

void

getlength()

}class

demo4

}

注意:乙個類最多只能有乙個直接的父類,但是可以有多個間接的父類。

class

grandpa

class

father

extends

grandpa

class

child

extends

father

class

demo

}

1.介面的作用

程式的解耦。(低耦合)

定義約束規範。

拓展功能。

2.介面的定義格式

inte***ce 介面名
3.介面要注意的事項

介面是乙個特殊的類。

介面的成員變數預設的修飾符為: public static final 。那麼也就是說介面中的成員變數都是常量。

介面中的方法都是抽象的方法,預設的修飾符為: public abstract。

介面不能建立物件。

介面是沒有構造方法的。

介面是給類去實現使用的,非抽象類實現乙個介面的時候,必須要把介面中所有方法全部實現。

4.實現介面的格式

class  類名 implements 介面名
demo:

inte***ce

aclass

demo

implements

a//實現介面中的方法

public

void

print()

}

demo:

//普通的鉛筆類

class

pencil

public

void

write()

}//橡皮介面

inte***ce

eraser

//帶橡皮的鉛筆

class

pencilwitheraser

extends

pencil

implements

eraser

public

void

remove()

}class

demo

}

1.類與介面之間的關係:實現關係。

類與介面要注意的事項:

非抽象類實現乙個介面時,必須要把介面中所有方法全部實現。

抽象類實現乙個介面時,可以實現也可以不實現介面中的方法。

乙個類可以實現多個介面 。

2.介面與介面之間關係: 繼承關係。

介面與介面之間要注意事項:

乙個介面是可以繼承多個介面的。

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...