3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
您希望在子類實(shí)例化之前執(zhí)行一些初始化(對(duì)抽象類的字段)。 您已經(jīng)在抽象類中定義了最終字段,但是沒(méi)有在聲明本身中初始化它們;在本例中,您必須有一個(gè)構(gòu)造函數(shù)來(lái)初始化這些字段。
您可以定義多個(gè)構(gòu)造函數(shù)(具有不同的參數(shù))。 你可以(應(yīng)該嗎?)定義所有受保護(hù)的構(gòu)造函數(shù)(讓它們公開(kāi)是沒(méi)有意義的) 您的子類構(gòu)造函數(shù)可以調(diào)用抽象類的一個(gè)構(gòu)造函數(shù);它甚至可以調(diào)用一個(gè)構(gòu)造函數(shù)。 不得不
調(diào)用它(如果抽象類中沒(méi)有no-arg構(gòu)造函數(shù))

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
是! 抽象類可以有構(gòu)造函數(shù)。!

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
abstract class Product { int multiplyBy; public Product( int multiplyBy ) { this.multiplyBy = multiplyBy; } public int mutiply(int val) { return multiplyBy * val; }}class TimesTwo extends Product { public TimesTwo() { super(2); }}class TimesWhat extends Product { public TimesWhat(int what) { super(what); }}
Product
TimesTwo
TimesWhat
注意:由于父抽象類中沒(méi)有默認(rèn)(或非Arg)構(gòu)造函數(shù),子類中使用的構(gòu)造函數(shù)必須顯式調(diào)用父構(gòu)造函數(shù)。
添加回答
舉報(bào)