抽象方法與抽象類 筆記

2021-08-10 16:17:15 字數 1035 閱讀 3879

抽象方法:只有方法名、參數列和返回值,沒有方法體。

既然抽象方法沒有方法體,那麼也就不能被執行。如果某個類含有抽象方法,那麼這個類必須定義為抽象類,即在類定義前用關鍵字abstract修飾。

但需要注意,乙個抽象類可以沒有抽象方法。

抽象類沒有具體的物件。

通常定義抽象類的物件引用指向它子類的物件。

注意:抽象方法和抽象類

1抽象類不可以建立物件

2包含抽象方法的類必須被宣告為抽象類

3抽象類中可以包含非抽象方法和抽象方法,但不一定包含抽象方法

abstract

class

animal

int getage()

abstract

void speak();//抽象方法

}class

catextends

animal

void speak()

}class

bird

extends

animal

void speak()

}public

class

animaldemo

public

static

void main(string args)

}

程式執行結果:

cat speaking

bird speaking

結果說明:

雖然抽象類不能建立物件,但可以像普通類那樣用作變數的型別,如makespeak()方法的引數a。在makespeak()中通過動態繫結執行相應的speak()方法。

若乙個子類未實現父類中的抽象方法,這個子類也是抽象類,必須用關鍵字abstract修飾。因為不能建立抽象類的物件,所以抽象類保證了其所有子類若可以例項化,必須實現抽象類中宣告的抽象方法。

靜態方法、私有方法和final修飾的方法是不能被覆寫的,因此這三類方法不能被定義為抽象方法。

抽象類與抽象方法

有些類注定是不能被初始化的,即不能被new 設想一下,乙個animal類下有很多子類,dog,cat,lion等,這些子類都可以被例項化,但是animal如果被例項化後會變成什麼樣?會有什麼特徵?這是難以想象的,因此像animal這樣的父類就不能例項化,我們迫切需要有一種類,只能例項化其子類物件而本...

抽象類與抽象方法

l 抽象類與抽象方法由abstract修飾 l abstract的使用注意 抽象方法沒有方法體 抽象成員只能存在於抽象類中 抽象類可以有非抽象成員 抽象類的派生類必須實現抽象方法體 抽象類只能用作基類,無法例項化 static void main string args public abstrac...

抽象類與抽象方法

抽象類 含有abstract修飾符的class即為抽象類 抽象類可以宣告物件,但不能例項化物件,必須靠子類將方法實現 含有abstract方法的類必須為抽象類 但是抽象類中的方法可以不是抽象的 抽象方法 抽象方法不能例項化,即沒有方法體 沒有 抽象方法在非抽象子類中需全部重寫 抽象方法只能存在抽象類...