抽象方法是只有方法簽名,沒有方法實現的方法。
抽象方法和抽象類必須使用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.抽象類無法例...