6 5 1 抽象方法和抽象類

2021-06-29 15:00:59 字數 1886 閱讀 5217

抽象方法是只有方法簽名,沒有方法實現的方法。

抽象方法和抽象類必須使用abstract修飾符來定義。

抽象類必須使用abstract修飾符來修飾

抽象類不能被例項化,無法使用new關鍵字來呼叫抽象類的構造器建立抽象類的例項。

抽象類可以包含成員變數、方法(普通方法和抽象方法都可以)、構造器、初始化塊、內部類(介面、列舉)5種成分

含有抽象方法的類只能被定義成抽象類。

抽象方法失去了乙個能力:抽象類不能用於建立例項。

定義抽象方法只需要在普通方法上增加abstract修飾符,並把普通方法的方法體也就是方法後花括號括起來的部分全部去掉,並在方法後增加分號即可。

package chap6_5;

public

abstract

class shape

private string color;

public

abstract

double

calperimeter();

public

abstract string gettype();

public

shape()

public

shape(string color)

public string getcolor()

public

void

setcolor(string color)

}

package chap6_5;

public

class

********

extends

shape

private

void

setsides(double a, double b, double c)

this.a = a;

this.b = b;

this.c = c;

}@override

public

double

calperimeter()

@override

public string gettype()

}

package chap6_5;

public

class

circle

extends

shape

public

void

setradius(double radius)

@override

public

double

calperimeter()

@override

public string gettype()

public

static

void

main(string args)

}

執行結果

執行shape的初始化塊...

執行shape的構造器...

執行shape的初始化塊...

執行shape的構造器...

三角形12.0

黃色圓形

18.84955592153876

利用抽象類和抽象方法的優勢,可以更好地發揮多型的優勢,使得程式更加靈活。

當使用abstract修飾類時,表明這個類只能被繼承,當使用abstract修飾方法時,表明這個方法必須由子類提供實現(即重寫)。而final修飾的類不能被繼承,final修飾的方法不能被重寫,因此final和abstract永遠不能同時使用。

abstract方法不能定義為private訪問許可權,即private和abstract不能同時修飾方法。

抽象方法和抽象類

思想 利用通用介面建立的一種基本形式,以此表示所有匯出類的共同部分 概念 1 抽象方法 僅有宣告,沒有方法體 2 抽象類 含抽象方法的類 要點 抽象類可以不含抽象方法 抽象類不能被例項化 不能使用 new 關鍵字 子類繼承抽象父類而不提供方法定義,則子類也必須為抽象類 抽象類可以包含屬性 方法 構造...

抽象方法和抽象類

1.什麼是抽象方法 定義 乙個方法如果沒有方法體 乙個方法不使用 直接使用分號結束的方法,才是沒有方法體的方法 則這個方法就是抽象方法 一 宣告乙個方法,不適用 而直接分號結束 二 如果是抽象方法,必須使用 abstract 抽象關鍵字來修飾 三 不是抽象類,不可以使用抽象方法 2.什麼是抽象類 一...

抽象類和抽象方法

我認為抽象類和抽象方法是物件導向程式設計中十分重要的,利用這個特性來讓所有操作是都在基類上,實現了多型的特性。抽象類 1.抽象類的宣告。在類名前面的修飾符中新增abstract修飾符就能得到乙個抽象類。2.抽象類可以包含普通方法,也可以包含抽象方法 但是,包含抽象方法的類必為抽象類。3.抽象類無法例...